|
Programmi criptati con olly
|
|
Data
|
by
"Pnluck"
|
|
|
04/06/2004
|
UIC's
Home Page
|
Published by Quequero
|
|
|
Grazie tante pnluck!
|
|
|
....
|
- E-mail: pnluck@virgilio.it
- Pnluck,#crack-it,#insidenet
|
....
|
|
Difficoltà
|
(X)NewBies ( )Intermedio ( )Avanzato ( )Master
|
|
- Newbie n°9
- con Ollydbg "all-in-one" o quasi
Written by Pnluck
- Reversiamo un programma criptato utilizando solo Ollydbg
- Tools usati: Ollydbg
- Tn9
- Un crackme critpato con un criptatore fatto interamente da AndreaGeddon
- Apriamo il file con l'Ollydbg, e questo ci avverete che il programma ha un entrypoint fuori dal codice. Allora dobbiamo fare solo una cosa, attivare le opzioni SFX di Olly in questo modo:

Dopo ciò riaprimo il prg con l'Olly, e ci apparirà il seguente codice:

Ciò significa che stiamo vedendo il prg "decriptato" da Olly. In realtà Olly non ha fatto altro che eseguire il prg e fermarsi appena è arrivato al "Real entry point", cioè fa la funzione di un semplice "launcher". Ora che abbiamo fatto il più, lanciamo il prg ed esaminiamolo, leggiamo un po' quello che ci dice e premiamo "Register" che fa apparire subito la msg di errore. Chiudiamo e riapriamo il file. Ora possiamo fare due cose mettere un "bp MessageBoxA" ,oppure premiamo il pulsante destro "Search for" -> "All referenced text string".
Nel primo caso apriamo il plug-in del command line e digitiamo "bp Messagebox", lanciamo il prg e clikaimo su "Register", ora Olly riprende il controllo del programma, e notiamo sibbito che ci troviamo fuori dal programma e quindi ci dobbiamo tornare per fare ciò nella finestra "Degub" ed clikiamo su "Execute till user code", in questo modo torneremo nel codice del programma esattamente ad "0040151A RETN" ora saliamo un po' e notiamo il messaggio di errore, salendo ancora un po' notiamo un jmp ed un cmp
00401500 CMP DWORD PTR DS:[403020],1 /compara 403020(=1) con 1
00401507 JNZ SHORT Nono.0040151B /se è diverso salta
Quindi far apparire la finestra con il complimento dobbiamo cambiare quel "1" nel CMP con "0". Però prima dobbiamo provare andiamo sulla riga del CMP e clikiamo con il destro, poi "assemble" e cambiamo "1" con "0" premiamo Ok e poi lanciamo il programma e ci appare il messaggio con il complimento ma qui leggiamo che dobbiamo modificare il prg affinché superiamo il corso, niente di più facile riapriamo il file andiamo su 401500, cambiamo quel "1" con "0", poi
destro "Copy to executable"-> "Selection". Qui ci appare un'altra finestra nella quale riclikiamo con il destro "Backup"-> "Save data to file" e salviamo il prg con un nome diverso, ora apriamo il prg clikiamo su register ed abbiamo passato questo livello
Nel secondo caso premiamo il pulsante destro "Search for" -> "All referenced text string" e troviamo la stringa di errore con destro e "Search for text" e cercare la scritta che ci è uscita, ma in questo caso il testo ci appare sotto il naso, quindi clikiamoci sopra e ci troviamo a "00401510 PUSH Nono.00403074" , ora dobbiamo solo seguire le istruzioni ke vi ho dato da 401500 :)
-
Pnluck
Grazie ai ragazzi della uic e di insident, ma uno spial thx a Quake ke a furia di domande gli ho rotto le palle,ad Andre che è sempre presente in Irc, ad "ironspek" x i suoi consigli "spekiali", Brnocrist,marella,Xtremer,FIgarò e tutti gli altri che mi hanno aiutato.
PS: thx anche a Q x aver creato la UIC
Qui inserirete con questo carattere il vostro piccolo
disclaimer, non è obbligatorio però è meglio per voi se c'è. Dovete scrivere qualcosa
di simile a: vorrei ricordare che il software va comprato e non rubato, dovete
registrare il vostro prodotto dopo il periodo di valutazione. Non mi ritengo responsabile
per eventuali danni causati al vostro computer determinati dall'uso improprio di questo
tutorial. Questo documento è stato scritto per invogliare il consumatore a registrare
legalmente i propri programmi, e non a fargli fare uso dei tantissimi file crack presenti
in rete, infatti tale documento aiuta a comprendere lo sforzo immane che ogni singolo
programmatore ha dovuto portare avanti per fornire ai rispettivi consumatori i migliori
prodotti possibili.
Noi reversiamo al solo scopo informativo e
di miglioramento del linguaggio Assembly.