13.07.2015 Views

The art of cracking - Tutoriali

The art of cracking - Tutoriali

The art of cracking - Tutoriali

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Ova RVA adresu je 00443600 a ovo predstavlja prvu RVA adresu od 1000novih dodatih bajtova. Ovde cemo dodavati nas kod. Sada pocinje pravazabava :)Prvo cemo dodati sve ASCII vrednosti koje su nam potrebne. Selektovacemoadresu 00443600 i pritisnucemo desno dugme i izabracemo Binary -> Edit...u novo otvorenom prozoru cemo u ASCII polju uneti http://www.google.coma primeticete da Keep size checkbox nesme da bude otkacen.Drugi string cemo ubaciti na adresi 00443616, tako da cemo selektovati00443615 i izmenicemo drugi bajt i tri iza njega u string “open” - beznavodnika. Zasto ovako razmacinjemo dva stringa??? Zato sto se svaki stringmora zavrsavati sa po jednim 0x00 bajtom.Dalje cemo presresti loop koji je zaduzen za prevodjenje poruka i njihovuinterpretaciju. Ovaj loop se najlakse nalazi tako sto cemo naci mesto gde senalaze WM_nesto komande. Taj CALL pocinje ovde 004085C8, a vec jedefinisan kada se pojavio default dialog na ekranu. Pogledajte ovu adresu:00408724 . 68 C8854000 PUSH original.004085C8 ; |DlgProc = original.004085C8NOPovacemo sve od 00408611 pa do 00408624 jer nam taj dao koda netreba. Na mesto prikazivanja poruke kada se pritisne dugme ? cemo ubacitipojavljivanje novog dialoga i obradu poruka. Selektovacemo adresu00408611 i na to mesto cemo ubaciti sledeci kod:JMP 00443620a ovo ce nas odvesti do novog koda koji cemo dodati na toj adresi.Na adresi00443620 dodajte kod:CMP ESI,0BBFJNZ 00443643PUSH 40 {MOV EAX,DWORD PTR DS:[409290]PUSH EAXMOV EAX,DWORD PTR DS:[409294]Kod za prikazivanje MsgBoxAPUSH EAXPUSH EBXCALL 00404C2C }JMP 00408625NOPNOPSta se ovde desava ??? Prvo se ESI (sadrzace ID objekta koji je pritisnut)uporedjuje sa 0BBF, to jest proveravamo da li je pritisnuto drugo (novo)dugme ?, a ako jeste onda cemo prikazati backupovani messagebo x sastarog (00408611) ? Posle ovoga se proverava ako ovo nije tacno program ceskociti na neku dalju adresu, a ako je ESI 0BBF onda ce se prikazatiMessageBox na ekranu. Ako se pokaze MessageBox na ekranu onda cemo seposle prikazivanja MessageBoxa vratiti u loop za proveru poruka pomocuJMPa. Dalje cemo selektovati adresu 00443643 i unecemo sledece:CMP ESI,0BBEJE 00408374Ovde poredimo ESI sa dugmetom za gasenje programa, EXIT. Ako jepritisnuto ovo dugme program ce otici na mesto iznad message loopa ko je jezaduzeno za gasenje programa. Ovo smo ranije odredili da se nalazi naadresi 00408374. Dalje cemo selektovati adresu 00443655 i unecemo:CMP ESI,0BBDJNZ 00443673PUSH 1 {PUSH 0PUSH 0<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 65 <strong>of</strong> 165

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

Saved successfully!

Ooh no, something went wrong!