05-10-2010, 07:38 PM
Premetto che questa guida è a scopo informativo e che il reversing su applicazioni che lo vietano, è punibile con la legge.
Requisiti:
Conoscenza dell'Assembly, e di un Debugger.
In questa guida useremo il Debugger di nome "OllyDBG" reperibile molto facilmente da internet
Prima di tutto abbiamo bisogno di un eseguibile su cui lavorare (questo era ovvio), quindi perchè non programmarlo noi?!
Facciamo un piccolo eseguibile in C:
#include
#include
main() {
char password[] = "12345"; // password = 12345
char letteretotali[40]; // imposta le lettere totali a 40 lettere
printf ("Type the password: "); // scrive
scanf ("%s", letteretotali); // legge quello che viene scritto
if (!strcmp(letteretotali,password))
{
printf ("You have type the correct password. Grats!n"); // scrive
system("PAUSE");
}
else
{
printf ("You have type a incorrect password. no0b!n"); // scrive
system("PAUSE");
}
return 0; // esce
}
Ora compiliamo. Come possiamo notare se inseriamo una password diversa da "12345" otterremo il messaggio "You have type a incorrect password. no0b!", e noi vogliamo che appaglia il messaggio "You have type the correct password. Grats!" senza però sapere la password. Quindi dobbiamo fare in modo che il programma accetti qualunque tipo di password e che dica "You have type the correct password. Grats!".
OK, ora apriamo OllyDBG e facciamo un drag & drop del programma che vogliamo reversare nella finestra di OllyDBG. Adesso dobbiamo trovare il modo di sostituire l'istruzine che ci manda al messaggio "You have type a incorrect password. no0b!" inserendo una password sbagliata.
Quindi, nella finestra principale facciamo: Tasto Destro>Search for>All referenced text strings, che serve per cercare tutte le stringhe di testo che scrive il programma. Adesso facciamo doppio click sulla scritta "ASCII "You have type a incorrect password. no0b!" e nella finestra che si apre, leggendo a sinistra, selezionate la righa n° "00401300" e fate: Tasto Destro>Binary>Fill with NOPs, così da modificare quell'istruzione con l'istruzione NOP(un istruzione che non fa nulla). OK, ora fate Tasto Destro>Copy to executable>All modification poi fate Copy All(così da copiare tutte le modifiche all'eseguibile). Adesso salviamo con Tasto Destro>Save File e salvate con il nome che volete. Apriamo il programma e proviamo ad inserire una password che non sia 12345 e noterete che vi darà ugualmente il messaggio "You have type the correct password. Grats!". Congratulazioni avete reversato un programma!
NB: Non tutti i programmi sono così semplici da reversare, ma se ti piace l'arte del Reversing vai su questo sito: "crackmes.de" dove troverai tantissi programmi fatti apposta per essere reversati.
fonti :xthreme hacking
Requisiti:
Conoscenza dell'Assembly, e di un Debugger.
In questa guida useremo il Debugger di nome "OllyDBG" reperibile molto facilmente da internet
Prima di tutto abbiamo bisogno di un eseguibile su cui lavorare (questo era ovvio), quindi perchè non programmarlo noi?!
Facciamo un piccolo eseguibile in C:
#include
#include
main() {
char password[] = "12345"; // password = 12345
char letteretotali[40]; // imposta le lettere totali a 40 lettere
printf ("Type the password: "); // scrive
scanf ("%s", letteretotali); // legge quello che viene scritto
if (!strcmp(letteretotali,password))
{
printf ("You have type the correct password. Grats!n"); // scrive
system("PAUSE");
}
else
{
printf ("You have type a incorrect password. no0b!n"); // scrive
system("PAUSE");
}
return 0; // esce
}
Ora compiliamo. Come possiamo notare se inseriamo una password diversa da "12345" otterremo il messaggio "You have type a incorrect password. no0b!", e noi vogliamo che appaglia il messaggio "You have type the correct password. Grats!" senza però sapere la password. Quindi dobbiamo fare in modo che il programma accetti qualunque tipo di password e che dica "You have type the correct password. Grats!".
OK, ora apriamo OllyDBG e facciamo un drag & drop del programma che vogliamo reversare nella finestra di OllyDBG. Adesso dobbiamo trovare il modo di sostituire l'istruzine che ci manda al messaggio "You have type a incorrect password. no0b!" inserendo una password sbagliata.
Quindi, nella finestra principale facciamo: Tasto Destro>Search for>All referenced text strings, che serve per cercare tutte le stringhe di testo che scrive il programma. Adesso facciamo doppio click sulla scritta "ASCII "You have type a incorrect password. no0b!" e nella finestra che si apre, leggendo a sinistra, selezionate la righa n° "00401300" e fate: Tasto Destro>Binary>Fill with NOPs, così da modificare quell'istruzione con l'istruzione NOP(un istruzione che non fa nulla). OK, ora fate Tasto Destro>Copy to executable>All modification poi fate Copy All(così da copiare tutte le modifiche all'eseguibile). Adesso salviamo con Tasto Destro>Save File e salvate con il nome che volete. Apriamo il programma e proviamo ad inserire una password che non sia 12345 e noterete che vi darà ugualmente il messaggio "You have type the correct password. Grats!". Congratulazioni avete reversato un programma!
NB: Non tutti i programmi sono così semplici da reversare, ma se ti piace l'arte del Reversing vai su questo sito: "crackmes.de" dove troverai tantissi programmi fatti apposta per essere reversati.
fonti :xthreme hacking