|
Nono Corso Newbies |
||
| Data |
by "The Hellfish" |
|
| 25/05/2001 |
Published by Quequero |
|
| Che dire…Il tutorial più veloce del mondo :) |
||
| .... |
Home page se presente: http://www.thehellsite.com/ E-mail: johnes@freesurf.it johnes su #crack-it |
.... |
| Difficoltà |
(X)NewBies ( )Intermedio ( )Avanzato ( )Master |
|
In questo tutorial spiegherò come unpackare il Leim Crypt (e si chiama leim non per caso!!)
Nono Corso Newbies
Unpacking for newbies
Written by The Hellfish
| Introduzione |
Da introduzione posso dirvi solo che questo programmino by Andreageddon è un'ottima via per buttarsi a unpackare i vari crypter.
| Tools usati |
| URL o FTP del programma |
http://www.spippolatori.com/uic
| Notizie sul programma |
Dunque il target è semplice, far venire fuori la "good guy" premendo register... piccolo problema però: è cryptato!
| Essay |
Allora prendiamo il nostro programmino, e carichiamolo nel PEditor. Quando si ha il sospetto che un programma sia cryptato basta andare a vedere le sezioni (Sections), se c'è qualcosa di strano... è cryptato! :) Nel nostro NONO.exe abbiamo una sezione anomala (Geddone!) che contiene il codice di decrypting del programma: il programma infatti ha l'entry point all'inizio di questa sezione. Una volta eseguito il decrypting il programma andrà nella sezione TEXT e continuerà normalmente. Il nostro scopo è quello di avere un exe tale e quale all'originale ma decryptato. Per far questo eseguiamo NONO.exe, apriamo il PEditor, andiamo su Task, selezioniamo NONO.exe e facciamo Dump Full, il PEditor provvederà a salvare su disco l'exe decryptato e ad allineare le sezioni. Bene ora abbiamo salvato su disco l'exe decryptato, eseguiamolo e... CRASH! Il geddone infatti si è preoccupato si fare impestare la IT dal loader (la sezione Geddone!). Dunque abbiamo una IT corrotta, vediamo di metterla a posto! Questa è la IT di NONO.exe:
| Dll Name |
OrigFirstThunk |
TimeDate Stamp |
Forwarder Chain |
Name |
FirstThunk |
| MFC42 |
00004074 |
00000000 |
00000000 |
0000442C |
4258 |
| MSVCRT |
000041D8 |
00000000 |
00000000 |
00004462 |
43BC |
| KERNEL32 |
00004064 |
00000000 |
00000000 |
00004560 |
4248 |
| USER32 |
00004220 |
00000000 |
00000000 |
000045F4 |
4404 |
E questa la IT di DUMPED.exe:
| Dll Name |
OrigFirstThunk |
TimeDate Stamp |
Forwarder Chain |
Name |
FirstThunk |
| MZ |
00000000 |
36F80F55 |
00000000 |
00000000 |
4258 |
| MSVCRT |
000041D8 |
36B69D5D |
78000000 |
00004462 |
43BC |
| KERNEL32 |
00004064 |
371FC2B3 |
BFF70000 |
00004560 |
4248 |
| USER32 |
00004220 |
37456CEB |
BFF50000 |
000045F4 |
4404 |
Come possiamo vedere la prima dll è sbagliata perciò dobbiamo correggere l'Original First Thunk e il Name. Apriamo Hiew e andiamo a 4000, che sarebbe l'indirizzo della IT (dal PEditor avete tutte le informazioni che vi servono e potete calcolarvi gli offset usando il FLC). A questo punto abbiamo una serie di dword, ognuna di esse corrisponde ad un descrittore, le ultime 5, che sono null, indicano la fine della IT. Noi ci piazzeremo sulla prima dword e ci scriveremo 74 40 00 00 (notazione Intel!!), poi andremo sulla quarta e ci scriveremo 2C 44 00 00. Ora la funzione è tornata a posto però dobbiamo fare un'ultima modifica. Per fare in modo che il programma si calcoli ad ogni esecuzione gli entry point delle dll importate dovremo azzerare il TimeDate Stamp e il Forwarder Chain di ogni dll, quindi scriveremo in ogni dword corrispondente 00 00 00 00. La IT ora è perfetta! Avviamo il programma... azz, nn funziona ancora! La spiegazione è semplice: il programma ha l'entry point che punta ancora alla sezione Geddone! e noi vogliamo che punti alla sezione TEXT in modo da evitare la routine di decrypting sull'exe gia decryptato. Come facciamo a sapere l'entry point originale? Carichiamo NONO.exe nel symbol loader, steppiamo, steppiamo fino a quando non si arriva qui:
00407136 jmp eax ---> in eax c'è l'indirizzo 4017D0
Il programma a questo punto dopo aver eseguito il decrypting salterà all'entry point originale, continuando il suo normale corso. Annotiamoci l'indirizzo 4017D0, apriamo Dumped.exe nel PEditor e cambiamo l'entry point da 7001 (entry point della sezione Geddone!) a 17D0 (entry point della sezione TEXT), clicchiamo su Apply Changes ed il gioco è fatto! Il programma ora è decryptato e perfettamente funzionante. Ora non ci rimane che far venire fuori la messagebox giusta. BPX messageboxA e clicchiamo su register, usciamo dalla MFC42 e arriviamo qui:
00401500 CMP DWORD PTR
[00403020],01
00401507 JNZ 0040151B ---> jmp condizionato
00401509 PUSH 10
0040150B PUSH 00403088
00401510 PUSH 00403074
00401515 CALL 00401762 ---> bad guy
0040151A RET
0040151B PUSH 40
0040151D PUSH 00403064
00401522 PUSH 00403024
00401527 CALL 00401762 ---> good guy
0040152C RET
Andate con Hiew a 1507, invertite il jmp e avete finito!
The Hellfish 2001
| Note finali |
Vorrei ringraziare innanzitutto Andreageddon per questo ottimo corso! Un saluto va poi al mio fratellone virtuale Bieco, un saluto a Para, Dibbo, Que e tutti gli altri di #crack-it! Ciauzzzzzzzzzzzzzzzzzzzzz
| Disclaimer |
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.
Capitoooooooo????? Bhè credo di si ;))))