The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
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