The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ReEnable buttons - API<br />
Ovaj deo poglavlja ce vas nauciti kako da pronadjete tacno mesto<br />
odakle se iskljucuju / ukljucuju opcije. Naravno posto je Micros<strong>of</strong>t-ova<br />
dokumentacija veoma obimna spisak svih raspolozivih API funkcija nije ni<br />
malo lako prelistati i naci ono sto vam treba. Naravno kao i svaki drugi<br />
veoma nestrpljivi cracker odlucio sam da batalim API reference i da nadjem<br />
neki prakticni primer kojim cu lako otkriti kako se to iskljucuju / ukljucuju<br />
dugmici, meniji, formovi i sl... Slucajno sam pri ruci imao savrsen primer za<br />
ovaj problem. Primer …\Casovi\Cas8\editor.exe izgleda ovako:<br />
Kao sto se vidi na ovoj<br />
slici u pitanju je jos jedan<br />
NAG ekran koji treba<br />
ukloniti. Jedina prednost<br />
ovog primera nad svim<br />
drugima je to sto on ima<br />
iskljuceno dugme koje se<br />
posle deset sekundi<br />
ukljuci propustajuci vas<br />
dalje u program. Ovo je<br />
bitna karakteristika koju<br />
cemo iskoristiti da bismo<br />
nasli koja je to API<br />
funkcija zaduzena za<br />
ukljucivanje tog dugmeta.<br />
Da bismo ovo uradili<br />
mozemo da koristimo dva<br />
nacina: laksi nacin i moj<br />
nacin :) Jedini problem sa<br />
laksim nacinom je da on<br />
pretpostavlja da znate API funkcije koje se koriste za simuliranje tajmera. To<br />
jest da znamo kako to program napravi pauzu od 10 sekundi, a ako vam ovo<br />
nije poznato mozete uvek da koristite moj nacin :)<br />
Nacin 1:<br />
Laksi nacin pronalaska mesta odakle se poziva funkcija koja ukljucuje<br />
iskljuceno dugme je da postavimo break-point na svaku referencu ka API<br />
funkcijama koje sluze za pravljenje tajmera i / ili pauziranje programa. Ovo<br />
rade dve API funkcije: kernel32.Sleep i user32.SetTimer pa cemo pronaci<br />
koja se od ove dve koristi u ovom primeru. Preko Ollyja pogledajte koji se to<br />
importi nalaze u module -> names prozoru. Od ove dve spomenute funkcije<br />
pronaci cete samo API SetTimer. Naravno da se vreme moze pronaci i preko<br />
drugih APIja kao sto su GetLocalTime, GetSystemTime i slicnih ali je najbrze<br />
preko SetTimer APIja. Dakle postavimo break-point on every reference na<br />
ovaj API i onda startujmo program. Program ce zastati na adresi 00401253<br />
odakle se poziva SetTimer API. Ako odskrolujemo malo gore i pregledamo<br />
ceo ovaj CALL videcemo kako se to startuje timer i mozda cemo naci API<br />
funkciju koja ukljucuje dugme. Ono sto vidimo prikazano je na sledecoj slici:<br />
<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 140 <strong>of</strong> 293