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.

0040100C . 85C0<br />

TEST EAX,EAX<br />

0040100E . 74 1E<br />

JE SHORT damn_con.0040102E<br />

00401010 . A3 95234000 MOV DWORD PTR DS:[402395],EAX<br />

00401015 . 8307 01 ADD DWORD PTR DS:[EDI],1<br />

00401018 . 33C0 XOR EAX,EAX<br />

0040101A . 50 PUSH EAX ; /lParam => NULL<br />

0040101B . 68 45104000<br />

PUSH damn_con.00401045<br />

00401020 . 50 PUSH EAX ; |hOwner => NULL<br />

00401021 . 6A 73 PUSH 73 ; |pTemplate = 73<br />

00401023 . FF35 95234000 PUSH DWORD PTR DS:[402395]<br />

00401029 . E8 B3030000 CALL damn_con.004013E1<br />

0040102E > 6A 00 PUSH 0 ; /ExitCode = 0<br />

00401030 . E8 F4030000 CALL damn_con.00401429 ; \ExitProcess<br />

Sta sam vam rekao na OEPu smo. Sada preostaje samo da izvrsimo dump<br />

programa i to je to. Idemo na Plugins -> OllyDump -> Dump debugged<br />

proccess. Default podesavanja su OK pritisnite Dump i snimite fajl. Zatvorite<br />

Olly i probajte da startujete novi fajl i on radi! Ok uspeli smo. Da bi smo<br />

proverili da li je sve OK otvorimo dumpovan fajl u Ollyju. Idemo na Desno<br />

dugme -> Search for -> All referenced strings. Vidimo ovo:<br />

Text strings referenced in dmp:CODE<br />

Address Disassembly Text string<br />

00401000 PUSH 0 (Initial CPU selection)<br />

0040108D PUSH dmp.00402023 ASCII "-=[ ABOUT ]=-"<br />

00401092 PUSH dmp.00402031 ASCII "You are just trying to solve DAMN's Official<br />

joinig Contest. Made <strong>by</strong> tHE EGOiSTE/DAMN. At<br />

first make a keygen for this simple keycheck<br />

routine, then try to crack this program. <strong>The</strong><br />

LOCKED - Button should show an UNLOCKED-sign<br />

and if "...<br />

00401107 PUSH dmp.0040227D ASCII "-=[ YEAH! ]=-"<br />

0040110C PUSH dmp.0040220E<br />

ASCII "You got it! Thank you for registering!"<br />

00401124 PUSH dmp.00402353 ASCII " "<br />

00401149 PUSH dmp.00402321 ASCII " "<br />

0040127E PUSH dmp.00402317<br />

ASCII "About"<br />

004012CE PUSH dmp.0040228B ASCII "-=[ CHECK ]=-"<br />

00401301 MOV EDI,dmp.00402353 ASCII " "<br />

Ovo izgleda OK. Sada idemo na ALT + E da proverimo da li su svi importi OK.<br />

Desno dugme na ime .exe fajla pa na View names. Tabela izgleda ovako:<br />

Names in dmp<br />

Address Section Type ( Name Comment<br />

004030B0 .idata Import ( user32.AppendMenuA<br />

004030B4 .idata Import ( user32.DeleteMenu<br />

004030F8 .idata Import ( GDI32.DeleteObject<br />

004030B8 .idata Import ( user32.DialogBoxParamA<br />

004030BC .idata Import ( user32.DrawMenuBar<br />

004030C0 .idata Import ( user32.EnableWindow<br />

004030C4 .idata Import ( user32.EndDialog<br />

004030EC .idata Import ( kernel32.ExitProcess<br />

004030C8 .idata Import ( user32.GetDlgItem<br />

004030CC .idata Import ( user32.GetDlgItemTextA<br />

004030F0 .idata Import ( kernel32.GetModuleHandleA<br />

004030D0 .idata Import ( user32.GetSystemMenu<br />

004030D4 .idata Import ( user32.LoadBitmapA<br />

004030D8 .idata Import ( user32.LoadIconA<br />

004030DC .idata Import ( user32.MessageBoxA<br />

00401000 CODE Export <br />

004030E0 .idata Import ( user32.SendDlgItemMessageA<br />

004030E4 .idata Import ( user32.SendMessageA<br />

004030AC .idata Import ( user32.SetWindowTextA<br />

004030A8 .idata Import ( user32.wsprintfA<br />

Sve izgleda OK. Znaci sve je OK tj. raspakovali smo fajl kako treba! Po<br />

importima se zakljucuje da je ovaj .exe fajl pisan u ASMu.<br />

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

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

Saved successfully!

Ooh no, something went wrong!