Zoom Icon

OllyDbg e Delphi - Parte I

From UIC

Ollydbg e Delphi Parte I

Contents


Infos
Author: Cocco
Email: Kobra1505@libero.it
Website: --
Date: 11/06/2006 (dd/mm/yyyy)
Level: Working brain required
Language: Italian Image:Flag_Italian.gif
Comments: Traduzione Italiana a cura di DesTroYer



Teoria

Per tutti i programmi fatti in delphi esiste un trucco per per far fermare il programma quando si clicca su un Bottone.

È chiaro a tutti che per tutti gli elementi di un programma che si possano "Cliccare" si genera un evento "Click", ora vedremo come il nostro OllyDbg è tanto potente che non avremo bisogno di un attrezzo ausiliare quale DeDe per poter operare con i programmi in Delphi.

Non ci credi?, bene allora incominciamo...


I passi da seguire

Eseguire l'Applicazione, supponiamo che vogliamo fermare il programma giusto quando premiamo un bottone, questo è specialmente utile quando non riusciamo ad entrare nel codice mediante le APIs,: , qualcuno disse che siamo morti senza hmemcpy ?) nah.

  1. facciamo attenzione al nome del bottone, supponiamo che il bottone dica: "REGISTRARE"
  2. aprire l'Eseguibile con OllyDbg, segnare la prima linea del disassemblato ( sopra di tutto),
  3. clic destro SEARCH FOR - BINARY STRINGS- ( CTRL +B ), e inseriamo la stringa "Click" in ASCII e premiamo OK, lasciare disabilitata la casella SENSITIVE,
  4. Olly fermerà la ricerca, in tutti gli gli eventi "CLICK" che a noi interessano

Allora noi dobbiamo cercare:

"Register*Click" il "*" è perché non sappiamo quanti bottoni, menues, etc. hanno il nome "Register" che potrebbe averne più di una:
Register1Click-Register2Click-etc.

Continuiamo

Nella finestra di CPU saliamo verso l'inizio, e cerchiamo, CTRL +B "Click"

Image:Destroyer_olly_delphi_p1_001.gif

Pressiamo OK ed Olly si tratterrà nella prima coincidenza con "Click" ricordare che a noi solo c'interessano gli eventi ossia "il nome del pulsante CLICK"

Continuiamo cercando, con CTRL+L, fino a trovare: "nome del pulsante CLICK"

Seguiamo…

Ed in 00446158 troviamo:

Image:Destroyer_olly_delphi_p1_002.gif

Questo è il nostro.

Ora quello che bisogna fare è salire su di alcune linee, sempre verso l'alto, per trovare dove comincia l'evento Click.

Image:Destroyer_olly_delphi_p1_003.gif

Non ci rimane altro da fare che FOLLOW .

Su 00446153 pressiamo ENTER, o INTRO, e finiamo:

Image:Destroyer_olly_delphi_p1_004.gif

Dove comincia il codice ;)

Vediamo in DeDE se tutto quello che abbiamo detto corrisponde:

Image:Destroyer_olly_delphi_p1_005.jpg

E come possiamo vedere corrisponde perfettamente (446214), quindi il metodo funziona.

Ciao a tutti


Disclaimer

I documenti qui pubblicati sono da considerarsi pubblici e liberamente distribuibili, a patto che se ne citi la fonte di provenienza. Tutti i documenti presenti su queste pagine sono stati scritti esclusivamente a scopo di ricerca, nessuna di queste analisi è stata fatta per fini commerciali, o dietro alcun tipo di compenso. I documenti pubblicati presentano delle analisi puramente teoriche della struttura di un programma, in nessun caso il software è stato realmente disassemblato o modificato; ogni corrispondenza presente tra i documenti pubblicati e le istruzioni del software oggetto dell'analisi, è da ritenersi puramente casuale. Tutti i documenti vengono inviati in forma anonima ed automaticamente pubblicati, i diritti di tali opere appartengono esclusivamente al firmatario del documento (se presente), in nessun caso il gestore di questo sito, o del server su cui risiede, può essere ritenuto responsabile dei contenuti qui presenti, oltretutto il gestore del sito non è in grado di risalire all'identità del mittente dei documenti. Tutti i documenti ed i file di questo sito non presentano alcun tipo di garanzia, pertanto ne è sconsigliata a tutti la lettura o l'esecuzione, lo staff non si assume alcuna responsabilità per quanto riguarda l'uso improprio di tali documenti e/o file, è doveroso aggiungere che ogni riferimento a fatti cose o persone è da considerarsi PURAMENTE casuale. Tutti coloro che potrebbero ritenersi moralmente offesi dai contenuti di queste pagine, sono tenuti ad uscire immediatamente da questo sito.

Vogliamo inoltre ricordare che il Reverse Engineering è uno strumento tecnologico di grande potenza ed importanza, senza di esso non sarebbe possibile creare antivirus, scoprire funzioni malevoli e non dichiarate all'interno di un programma di pubblico utilizzo. Non sarebbe possibile scoprire, in assenza di un sistema sicuro per il controllo dell'integrità, se il "tal" programma è realmente quello che l'utente ha scelto di installare ed eseguire, né sarebbe possibile continuare lo sviluppo di quei programmi (o l'utilizzo di quelle periferiche) ritenuti obsoleti e non più supportati dalle fonti ufficiali.