Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-02-2009, 00:00   #1
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
[Linguaggi vari] I bug: trovarli e sfruttarli

Leggo sempre di bug che vengono scoperti e falle che vengono sfruttate: da programmi, da virus ecc ecc. Ho pensato cosi, dopo l'ennesimo articolo letto a riguardo, di aprire questo topic.
Si tirano in ballo sempre hacker e ricercatori come le persone che scoprono e sfruttano i bug. Ma come si trova un bug? Come si sfrutta? Che conoscenze si devono avere?
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 08:22   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ci vuole parecchia esperienza.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 08:28   #3
- Lke -
Senior Member
 
Iscritto dal: Nov 2006
Messaggi: 489
Provo a risponderti io in base a quel poco che so in attesa di qualcuno più esperto.
Saprai che ogni "cosa" che usi quando crei un programma è stata concepita per una determinata scopo. Molto banalmente, in questo caso, potresti sfruttare "maliziosamente" questa "cosa" per scopi diversi. Se la "cosa" è sufficientemente potente modificando l'uso che ne viene fatto nel programma potresti intaccare la sicurezza o la stabilità del sistema ecc.

Un esempio stupidissimo? Un ciclo infinito:
Diciamo che all' interno del tuo programma hai un ciclo che ha una determinata condizione che gli fa eseguire un numero di cicli appunto finito. Se questa condizione è regolata da una variabile, e tu per qualche motivo ai accesso a questa variabile, potresti farlo diventare senza fine.

Correggetemi se sbaglio.
- Lke - è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 10:10   #4
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Ci vuole parecchia esperienza.
Questo era scontato. Ma come conoscenze? Come strumenti di lavoro? Come procedimento? Soprattutto nei programmi closed source credo sia ancora più difficile che nei programmi open.
Quote:
Provo a risponderti io in base a quel poco che so in attesa di qualcuno più esperto.
Saprai che ogni "cosa" che usi quando crei un programma è stata concepita per una determinata scopo. Molto banalmente, in questo caso, potresti sfruttare "maliziosamente" questa "cosa" per scopi diversi. Se la "cosa" è sufficientemente potente modificando l'uso che ne viene fatto nel programma potresti intaccare la sicurezza o la stabilità del sistema ecc.

Un esempio stupidissimo? Un ciclo infinito:
Diciamo che all' interno del tuo programma hai un ciclo che ha una determinata condizione che gli fa eseguire un numero di cicli appunto finito. Se questa condizione è regolata da una variabile, e tu per qualche motivo ai accesso a questa variabile, potresti farlo diventare senza fine.

Correggetemi se sbaglio.
Questo si sa, è la base, io intendevo nello specifico.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 11:06   #5
- Lke -
Senior Member
 
Iscritto dal: Nov 2006
Messaggi: 489
Quote:
Ma come conoscenze? Come strumenti di lavoro? Come procedimento?
Per le conoscenze direi le stesse o di più di chi ha fatto il programma.
Come strumenti di lavoro il programma stesso e le conoscenze.
Come procedimento direi sperimentale: studi il programma ed immagini come potrebbe essere stato realizzato, se conosci i limiti del codice puoi arrivare a sfruttarli.
- Lke - è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 11:12   #6
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Nello specifico credo ci voglia una conoscenza pazzesca del campo, esperienza, e bisogna studiarsi un singolo programma per molto tempo... dato che ogni bug, per come si manifesta, è unico... non credo che ci sia un "corso di studi" per sapere sta roba, ci vuole solo una solida base ed esperienza come hacker, IMHO.
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 11:13   #7
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Nello specifico credo ci voglia una conoscenza pazzesca del campo, esperienza, e bisogna studiarsi un singolo programma per molto tempo... dato che ogni bug, per come si manifesta, è unico...
Direi anche conoscenze di assembly e linguaggi di basso livello, questo sicuramente.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 11:14   #8
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
E non a caso gli esperti di sicurezza mi risultano essere pagati decisamente bene
__________________
*ToMmO*

devlog | twitter
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 11:15   #9
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da Tommo Guarda i messaggi
E non a caso gli esperti di sicurezza mi risultano essere pagati decisamente bene
A proposito di esperti di sicurezza. Le conoscenze che hanno quali sono? A volte vengono mitizzati.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 12:02   #10
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Ci vuole parecchia esperienza.
assieme ad un po' di originalitá. io una volta ho scritto in C (perdonamelo, ero ancora inesperto e non capivo che andava scritto in C++ ^^) un piccolo tool per Windows per esaminare lo stack di un altro processo e trovare potenziali buffer overflows; praticamente non faceva altro che monitorare lo stack (o gli stack) tramite dei page guards in attesa che delle sequenze binarie predefinite ci venissero scritte; l'utente del tool quindi poteva impostare come sequenza binaria una stringa che poi avrebbe ad esempio scritto da qualche parte nel programma per verificare se quella scritta andava a finire sullo stack.

non era un granché come tool perché non tutti i dati che finiscono in quel modo sullo stack sono potenziali buffer overflows: nelle ultime revisioni del C infatti é possibile allocare sullo stack array a dimensione variabile. d'altra parte quando é stato inventato il DEP, che Windows supportava giá da prima che esistesse, il mio tool ha avuto il colpo di grazia e l'ho buttato

peró il principio rimane: enorme esperienza in fatto di programmazione di sistema unita ad un pizzico di fantasia e creativitá.

edit - a proposito, per la serie "Linux é il sistema operativo dei programmatori": su Linux quel tool sarebbe stato irrealizzabile, o quantomeno non realizzabile in maniera ragionevole; se mi sbaglio provatemelo.

Ultima modifica di fero86 : 21-02-2009 alle 12:05.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 12:08   #11
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da - Lke - Guarda i messaggi
Per le conoscenze direi le stesse o di più di chi ha fatto il programma.
tipicamente molte di piu, altrimenti chi ha fatto il programma non avrebbe messo il bug.


Quote:
Come strumenti di lavoro il programma stesso e le conoscenze.
piu magari un editor esadecimale, un disassemblatore, un buon debugger, e qualche tool sviluppato ad hoc (vedi esempio nel mio post precedente).
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 12:16   #12
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da fero86 Guarda i messaggi
assieme ad un po' di originalitá. io una volta ho scritto in C (perdonamelo, ero ancora inesperto e non capivo che andava scritto in C++ ^^) un piccolo tool per Windows per esaminare lo stack di un altro processo e trovare potenziali buffer overflows; praticamente non faceva altro che monitorare lo stack (o gli stack) tramite dei page guards in attesa che delle sequenze binarie predefinite ci venissero scritte; l'utente del tool quindi poteva impostare come sequenza binaria una stringa che poi avrebbe ad esempio scritto da qualche parte nel programma per verificare se quella scritta andava a finire sullo stack.

non era un granché come tool perché non tutti i dati che finiscono in quel modo sullo stack sono potenziali buffer overflows: nelle ultime revisioni del C infatti é possibile allocare sullo stack array a dimensione variabile. d'altra parte quando é stato inventato il DEP, che Windows supportava giá da prima che esistesse, il mio tool ha avuto il colpo di grazia e l'ho buttato

peró il principio rimane: enorme esperienza in fatto di programmazione di sistema unita ad un pizzico di fantasia e creativitá.

edit - a proposito, per la serie "Linux é il sistema operativo dei programmatori": su Linux quel tool sarebbe stato irrealizzabile, o quantomeno non realizzabile in maniera ragionevole; se mi sbaglio provatemelo.
Menomale che eri ancora inesperto

Quote:
tipicamente molte di piu, altrimenti chi ha fatto il programma non avrebbe messo il bug.
Non credo che si possa fare di tutta l'erba un fascio. Non è detto che debba avere molte più conoscenze di chi ha scritto il programma eh.
Quote:
piu magari un editor esadecimale, un disassemblatore, un buon debugger, e qualche tool sviluppato ad hoc (vedi esempio nel mio post precedente).
Ci vogliono tanta esperienza e studio in pratica. Come in tutte le cose del resto.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 15:24   #13
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Sui virus, su come agiscono e come s'implementano, due bei libri puoi scaricarli da qui:

http://vx.netlux.org/lib/vml00.html

http://vx.netlux.org/lib/vml01.html



P.S. Occhio: se scarichi il codice sorgente, il tuo antivirus dovrebbe segnalarti la presenza di un bel po' di virus. Se compili i sorgenti e li mandi in esecuzione, avrai il computer infettato. Scarica solo i libri
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 15:36   #14
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
quei libri sono troppo vecchi, ritengo che non siano piu validi; gli ho dato un'occhiata e in uno ho trovato prima un appendice che costituisce un surrogato di RBIL (lol) e poi un capitolo che spiega come infettare un EXE... col vecchio formato!! (stra-lol)
per non parlare di quell'altro, dove a una certo punto ho visto un capitolo relativo a COM; allora ho pensato "ah, ma forse solo il primo era vecchio, quest'altro é aggiornato"; vado a leggere... parlava dei files COM, quelli con estensione .com, gli eseguibili senza headers insomma, non il Component Object Model

saranno stati anche estremamente validi nella loro epoca, ma leggendoli oggi ci infetti al massimo un 486

PS: e non credo che l'antivirus segnali alcunché nel vedere quei virus
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 16:22   #15
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da fero86 Guarda i messaggi
quei libri sono troppo vecchi, ritengo che non siano piu validi; gli ho dato un'occhiata e in uno ho trovato prima un appendice che costituisce un surrogato di RBIL (lol) e poi un capitolo che spiega come infettare un EXE... col vecchio formato!! (stra-lol)
per non parlare di quell'altro, dove a una certo punto ho visto un capitolo relativo a COM; allora ho pensato "ah, ma forse solo il primo era vecchio, quest'altro é aggiornato"; vado a leggere... parlava dei files COM, quelli con estensione .com, gli eseguibili senza headers insomma, non il Component Object Model

saranno stati anche estremamente validi nella loro epoca, ma leggendoli oggi ci infetti al massimo un 486
...
Si sono un po' vecchi ma non m'è riuscito di trovare niente di più aggiornato. Sempre meglio che niente

Quote:
Originariamente inviato da fero86 Guarda i messaggi
...
PS: e non credo che l'antivirus segnali alcunché nel vedere quei virus
Io ho provato a scaricare i sorgenti e NOD32 mi segnala la presenza di virus.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 16:59   #16
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
Si sono un po' vecchi ma non m'è riuscito di trovare niente di più aggiornato. Sempre meglio che niente



Io ho provato a scaricare i sorgenti e NOD32 mi segnala la presenza di virus.
Ecco perchè, usi NOD32
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 18:21   #17
nico159
Senior Member
 
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
Quote:
edit - a proposito, per la serie "Linux é il sistema operativo dei programmatori": su Linux quel tool sarebbe stato irrealizzabile, o quantomeno non realizzabile in maniera ragionevole; se mi sbaglio provatemelo.
Prima di tutto cosa significa un OS dei programmatori?
Comunque Valgrind
__________________
In a world without fences, who needs Gates?
Power by: Fedora 8 - Mac OS X 10.4.11
nico159 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 18:42   #18
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nico159 Guarda i messaggi
Prima di tutto cosa significa un OS dei programmatori?
Comunque Valgrind
Si, infatti. Che significa? Lo volevo chiedere anche io.
Forse si riferisce al fatto che molti lo considerano un OS che usano solo i programmatori.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 22:05   #19
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da nico159 Guarda i messaggi
Prima di tutto cosa significa un OS dei programmatori?
c'é un famoso luogo comune, si dice (o almeno si diceva) che Linux sia stato fatto dai programmatori per i programmatori, e solo perché qualunque distribuzione include di default la GCC e una buona shell


Quote:
Comunque Valgrind
che io sappia Valgrind funziona solo se un programma é stato compilato appositamente affinché possa funzionare, non funziona affatto con programmi giá compilati.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2009, 22:59   #20
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6394
Gli ingredienti che servono sono:

- n°1 conoscenza della gestione dello stack/heap
- n°1 conoscenza di assembly
- n°1 conoscenza di linguaggi di programmazione
- n°1 familiarità con disassembler e debugger
- fantasia e un pò di fortuna Q.B
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::
eraser è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Larry Ellison guadagna 101 miliardi in u...
Johnson Controls amplia la gamma di solu...
NASA Perseverance: il rover potrebbe ave...
Quelli di Immuni si 'pappano' Vimeo: Ben...
Changan lancia la Deepal S05 in Europa, ...
Substrati in vetro, Intel smentisce le v...
ECOVACS DEEBOT T50 PRO OMNI Gen2 fa piaz...
Windelo 62: catamarano a vela che unisce...
Francia, in arrivo un incentivo di 1.000...
Haier, la sorpresa a IFA: la lavatrice C...
GeForce RTX 5000 SUPER in arrivo? Sembra...
Ionity prova una soluzione contro i ladr...
Pirateria, svolta clamorosa: Dazn e Lega...
Maxi richiamo Toyota e Lexus: oltre 900....
Blackwell Ultra: fino al 45% di prestazi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v