07.02.2015 Views

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ASProtect 1.2 / 1.2c<br />

Dugo vremena sam bio plasen od strane drugih (doduse manje<br />

iskusnih) crackera kako je najvece zlo koje stoji odmah uz Armadillo,<br />

protektor pod imenom ASProtect. Danas ja pokusavam da dokazem<br />

suprotno. Iako je verzija koju cemo mi reversovati pomalo zastarela, jer je u<br />

opticaju verzija 1.3x, i dalje je dobar primer kako se to reversuje ASProtect.<br />

Ne shvatite ovaj deo knjige olako, jer i dalje postoji mnogo komercijalnih<br />

programa pakovanih bas ovom verzijom programa. Postoje neke prednosti<br />

kod reversinga ove verzije ASProtecta, a to su: nema previse teskih importa,<br />

nema “ukradenih bajtova” i sto je najlepse od svega ima exceptiona koji nam<br />

pomazu da pronadjemo pravi OEP. Meta se zove crackme.asprotect.exe a<br />

nalazi se u folderu Cas10. Ucitacemo je u Olly i na pakerovom OEPu cemo<br />

imati sledece:<br />

00401000 >/$ 68 01704000 PUSH crackme_.00407001<br />

00401005 \. C3 RET<br />

Zanimljivo ili ne, ali mi se necemo baktati sa ovim. Kao sto sam rekao Olly ce<br />

nam pomoci preko exceptiona da nadjemo OEP. Pritisnite F9 i naci cete se<br />

ovde:<br />

0087009D 3100 XOR DWORD PTR DS:[EAX],EAX<br />

0087009F EB 01 JMP SHORT 008700A2<br />

008700A1 68 648F0500 PUSH 58F64<br />

008700A6 0000 ADD BYTE PTR DS:[EAX],AL<br />

Sada cemo pritiskati CTRL+F9 da bismo presli preko ovih exceptiona. Ovo<br />

cemo uraditi onoliko puta koliko je potrebno da se sama zapakovana meta ne<br />

startuje. To jest doci cemo do dela koda gde kada bi pritisnuli CTRL+F9 jos<br />

jednom NAG ekran iz crackmea bi se pojavio. Neki to rade brojanjem ali ovde<br />

nema potrebe za brojanjem jer je to mesto isto za sve programe i izgleda<br />

ovako:<br />

00882FCC FE02 INC BYTE PTR DS:[EDX]<br />

00882FCE ^ EB E8<br />

JMP SHORT 00882FB8<br />

00882FD0 E8 0A000000 CALL 00882FDF<br />

Znaci pritiskacemo CTRL+F9 sve dok ne dodjemo do ovog mesta u kodu.<br />

Sada cemo umesto CTRL+F9 pritisnuti CTRL+F8 da bismo presli preko ovog<br />

exceptiona za jednu liniju koda i kao poruceno zavrsavamo ovde:<br />

77FB4DB3 |. 8B1C24<br />

77FB4DB6 |. 51<br />

77FB4DB7 |. 53<br />

77FB4DB8 |. E8 ACBDFAFF<br />

77FB4DBD |. 0AC0<br />

MOV EBX,DWORD PTR SS:[ESP]<br />

PUSH ECX<br />

PUSH EBX<br />

CALL ntdll.77F60B69<br />

OR AL,AL<br />

Da, da zahvaljujuci Windowsu XP zavrsavamo u ntdll.dll-u. Ovo je dobra<br />

stvar jer cemo odatle izaci tacno ispod exceptiona. Pritiskajte F8 sve dok ne<br />

dodjete do prvog CALLa, a onda pritisnite F7 da udjete u njega. I dalje smo u<br />

istom dll-u pa cemo se kretati sa F8 sve dok ne dodjemo do ovog CALLa:<br />

77F60BEA . FF75 0C<br />

PUSH DWORD PTR SS:[EBP+C]<br />

77F60BED . 53<br />

PUSH EBX<br />

77F60BEE . 56<br />

PUSH ESI<br />

77F60BEF . E8 528F0100 CALL ntdll.77F79B46 TEST BYTE PTR DS:[77FC324A],80<br />

77F60BFB . 8BF8<br />

MOV EDI,EAX<br />

77F60BFD . 0F85 896F0200 JNZ ntdll.77F87B8C<br />

u koji cemo uci sa F7. A to nas vodi dublje u sam dll fajl. Sada smo ovde:<br />

77F79B46 $ BA B89BF777<br />

77F79B4B . EB 07<br />

MOV EDX,ntdll.77F79BB8<br />

JMP SHORT ntdll.77F79B54<br />

<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 223 <strong>of</strong> 293

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!