MEW 1.2 Manual Unpacking |
||
Data |
by evo |
|
2/02/2006 |
Published by Quequero |
|
Every
time i look in your eyes |
Grazie evo! |
Every
day i'm watching you die |
... |
|
... |
Difficoltà |
(X)NewBies ( )Intermedio ( )Avanzato ( )Master |
Introduzione |
Tools usati |
URL o FTP del programma |
Essay |
2. item: |
|
|
|
Il secondo salto evidenziato torna all'inizio di un mega loop,
guardando i vari jump ci accorgiamo che ce ne è uno proprio a 4001CA
(quello evidenziato in blu) quindi mettiamo un breakpoint su 4001CA, premiamo
F9 (run) e incrociamo le dita, si abbiamo visto giusto.
Azz ma c'è un jnz subito dopo, e salta ancora più sù, continuiamo
a tracciare e controlliamo che non faccia niente di strano, ritorniamo sempre
allo stesso punto, bene :) mettiamo un bp a 4001CF e premiamo F9 (lì
dove è evidenziato in verde) sempre con F8 saltate questa call, e continuiamo a steppare...
004001D4 AD LODS DWORD
PTR DS:[ESI] 004001D5 96 XCHG EAX,ESI 004001D6 AD LODS DWORD PTR DS:[ESI] 004001D7 97 XCHG EAX,EDI 004001D8 56 PUSH ESI 004001D9 AC LODS BYTE PTR DS:[ESI] 004001DA 3C 00 CMP AL,0 004001DC ^75 FB JNZ SHORT GDI_DEMO.004001D9 004001DE FF53 F0 CALL DWORD PTR DS:[EBX-10] ;Qui viene chiamata LoadLibraryA 004001E1 95 XCHG EAX,EBP 004001E2 56 PUSH ESI 004001E3 AD LODS DWORD PTR DS:[ESI] 004001E4 0FC8 BSWAP EAX 004001E6 40 INC EAX 004001E7 59 POP ECX 004001E8 ^74 EC JE SHORT GDI_DEMO.004001D6 004001EA 79 07 JNS SHORT GDI_DEMO.004001F3 004001EC AC LODS BYTE PTR DS:[ESI] 004001ED 3C 00 CMP AL,0 004001EF ^75 FB JNZ SHORT GDI_DEMO.004001EC 004001F1 91 XCHG EAX,ECX 004001F2 40 INC EAX 004001F3 50 PUSH EAX 004001F4 55 PUSH EBP 004001F5 FF53 F4 CALL DWORD PTR DS:[EBX-C] ;Qui invece GetProcAddress 004001F8 AB STOS DWORD PTR ES:[EDI] 004001F9 85C0 TEST EAX,EAX 004001FB ^75 E5 JNZ SHORT GDI_DEMO.004001E2 004001FD C3 RETN 004001FE 0000 ADD BYTE PTR DS:[EAX],AL 00400200 0000 ADD BYTE PTR DS:[EAX],AL 00400202 0000 ADD BYTE PTR DS:[EAX],AL |
Se avete notato da 4001CF fino a 40001FB carica
le varie dll e le funzioni importate :)
Mettete un bp sul RETN, e cosa c'è nello stack? ehi ma quello non è
il puntatore a quel "buffer" dove è stato unpackato tutto?
Si, e il RETN viene usato come salto all'entry point originale. Premete
ancora una volta F8 e vi ritroverete all'entry point originale, dumpate con
qualsiasi cosa vogliate (ProcDump, OllyDump [Senza usare rebit.dll by yoda])
e con un pe editor modificate l'entry point con quello che abbiamo trovato noi.
Ricostruite le Import con Import Reconstructor attacandolo al processo corrente,
mettete come OEP quello che abbiamo trovato (4F3C) premete IAT Auto Search,
sono tutte import valide. Fix Dump e il nostro exe è dumpato.
evo...entuale firmetta
Note finali |
Siamo arrivati alla fine, con qualche perplessità
forse... ma il file è lì e funziona.
Spero solo di essere stato chiaro. =)
Un saluto a GeO, Syx, a85k, Quequero, Andreageddon, Pnluck, ZeroG, tutti gli
altri di cui non ricordo il nome,
un ringraziamento di dovere anche a chiunque abbia scritto tutorial su PE e
Import Table.
Acknowledgements fly out to Northfox for his packer and his gdi demo ;)
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 che ogni sviluppatore ha dovuto portare avanti per fornire ai rispettivi consumatori i migliori prodotti possibili.
Reversiamo al solo scopo informativo e per migliorare la nostra conoscenza del linguaggio Assembly.