ooohh molto facile! Ovviamente io quando posso parlo di manual unpacking, perchè da li c'è sempre da imparare.
Allora olly ce l'hai, procurati ImportRec, anzi te lo uppo io bello aggiornato e con vari plugin ciappa:
DOWNLOAD ImportRec 1.7c
come per tutti i file compressi l'obiettivo principale è trovare l'OEP
bene è compresso con fsg 2.0, premesso questo vediamo un metodo per fare un bel maual unpacking, che da sempre tanta soddisfazione
-apri il crackme in olly
-premi F7 una sola volta. Come noterai il registro ESP è diventato rosso, significa che è cambiato.
-seleziona il registro ESP, poi premi con il tasto e scegli "Follow in Dump"
-guarda in basso a sinistra dove c'è il dump esadecimale. Ora evidenzia con il mouse i primi 4 byte (es di 4 byte: 00 10 40 00)
i piu' pratici avranno giàcapito che 00 10 14 non è altro che 401000 al contrario
(tipico OEP)
-batti F8 per 3 volte e ti troverai su un codice simile a questo
MOVS BYTE PTR ES:[EDI], BYTE PTR DS:[ESI]
se guardi ESI contiene l'indirizzo originale dell'oep cioè 41000
ok questo è servito a solo scopo didattico ed informativo. premi CTRL+F2 per ricaricare il progetto
Arriviamo al nocciolo. La tipica signature di FSG è la seguente
Codice:
004001CD ^78 F3 JS SHORT UNPACKME.004001C2
004001CF 75 03 JNZ SHORT UNPACKME.004001D4
004001D1 FF63 0C JMP DWORD PTR DS:[EBX+C]
il codice all'offset 004001D1 indovina cosa fa? ti spara direttamente all'OEP, proprio quando il codice è bello decompresso.
percio posizionati su 004001D1 e premi F2 per piazzare un break point
ora runna con F9
-bene in un attimo ti trovi su 004001D1, ora premi F7 per eseguire un solo passo e...
ti ritrovi nell'OEP!!!
premi CTRL+A per rianalizzare il codice e vedrai che tutto appare piu' chiaro
-è il momento di dumpare il processo
-sempre in olly vai nel menu Plugin->Olly Dump-> Dump Debugged Process
-Togli lo spunto da Rebuild Import, in quanto la IT la sistemeremo noi a con ImportRec dopo.
-dove c'è scritto Entry Point [xxxxx] -> Modify [xxxx]
annotati quello in Modify
-ora premi Dump, e salva l'eseguibile con un nuovo nome. NON CHIUDERE OLLY, dobbiamo ancora fixare la import table
-Apri ImportRec
-dalla lista dei processi scegli il tuo crackme
-sotto dove leggi OEP, modifica quello originale in quello che ti sei annotato in olly (il Modify)
-ora premi il tasto a fianco [IAT AutoSearch], ti usciràun messaggio tipo:
---------------------------
Found something!
---------------------------
Found address which may be in the Original IAT. Try 'Get Import'.
(If it is not correct, try RVA: 00001000 Size:0001C000)
-premi OK
-premi il tasto Get Imports, e nella lista sopra ti appariranno tutte le imports sistemate
-premi [Fix Dump], scegli il file che prima hai dumpato con olly ed hai finito
ora hai il tuo eseguibile unpackato.
Certo era piu' semplice prendere un unpacker, ma non avremo imparato assolutamente nulla. E poi vuoi mettere la soddisfazione!
Ciauz
Predator