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.
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