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.

Adding functions #2<br />

Prvi deo poglavlja je objasnio dodavanje MessageBoxa u program. U<br />

drugom delu ovog poglavlja cu vam pokazati kako da dodate Dijalog u neki<br />

program i kako da ga nacinite 100% funkcionalnim. Zvuci li zanimljivo Pa da<br />

pocnemo. Otvoricemo metu original.exe koja se nalazi u folderu Cas6, pomocu<br />

ResHackera. Zasto Zato sto moramo da dodamo nove resurse u sam exe<br />

fajl a to cemo najlakse uraditi pomocu ResHackera. Sada vidite zasto sam<br />

rekao da ResHacker ima jos mnogo<br />

korisnih funkcija. Kao sto vidimo na<br />

slici pored izabracemo iz glavnog<br />

menija Action -> Add new resource i<br />

kada se pojavi dijalog sa slike<br />

izabracemo fajl addonDialog.res i<br />

dodacemo jedan po jedan oba resursa<br />

koja se nalaze u tom fajlu. Ne ja ovde<br />

nemam nameru da objasnim kako se<br />

prave .res fajlovi. Za ovo cete sami<br />

morati da pregledate Micros<strong>of</strong>tovu<br />

dokumentaciju o Resource Compileru.<br />

Posle ovog dodavanja moramo da<br />

mapiramo, to jest da zapisemo sve<br />

IDove koji se nalaze u novododatom<br />

Dijalogu. ID samog dijaloga je 999<br />

(3E7h), dugme ima ID 3007 (BBFh),<br />

dugme Visit Web page ID 3005<br />

(BBDh), a dugme Exit ID 3006 (BBEh).<br />

Ovo nam je potrebno kako bismo<br />

povezali sve ove dugmice sa funkcijama koje ce raditi svoj posao. Sada<br />

mozemo da snimimo promene u ovom fajlu, snimicemo ovaj fajl kao<br />

AddOn.exe. Mozemo da zavrsimo sa ResHackerom i da otvorimo<br />

novosnimljeni fajl Ollyjem. Pre nego sto pocnemo sa dodavanjem funkcija u<br />

fajl prvo moramo da odlucimo gde cemo ih dodati i kako. Posto moramo da<br />

prikazemo novi dijalog na ekranu backupovacemo sledece linije ASM koda u<br />

recimo Notepad, jer ce nam kasnije trebati:<br />

00408722 . 6A 00 PUSH 0 ; /lParam = NULL<br />

00408724 . 68 C8854000 PUSH AddOn.004085C8 ; |DlgProc =<br />

00408729 . 6A 00 PUSH 0 ; |hOwner = NULL<br />

0040872B . 6A 64 PUSH 64 ; |pTemplate = 64<br />

0040872D . FF35 4CA84000 PUSH DWORD PTR DS:[40A84C] ; |hInst = 0<br />

00408733 . E8 C4C4FFFF CALL DialogBoxParamA ; \DialogBoxParamA<br />

dalje treba da backupujemo poruku koja ce se pojaviti kada pritisnemo<br />

dugme . Dakle treba da backupujemo ovo:<br />

00408611 |. 6A 40 PUSH 40 ; /Style = MB_OK<br />

00408613 |. A1 90924000 MOV EAX,DWORD PTR DS:[409290] ; |<br />

00408618 |. 50 PUSH EAX ; |Title => "About..."<br />

00408619 |. A1 94924000 MOV EAX,DWORD PTR DS:[409294] ; |<br />

0040861E |. 50 PUSH EAX ; |Text => "U “<br />

0040861F |. 53 PUSH EBX ; |hOwner<br />

00408620 |. E8 07C6FFFF CALL MessageBoxA ; \MessageBoxA<br />

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

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

Saved successfully!

Ooh no, something went wrong!