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.

Windows check debugger APIEvo jos jednog primera za Delphi programere. Ovaj deo koda jezasebna funkcija koja se koristi za detekciju bilo kog aktivnog debuggera.Ova funkcija ce detektovati da li je program st<strong>art</strong>ovan uz pomoc nekogdebuggera ili ne. Ovo je bar koliko je meni poznato nedokumentovana APIfunkcija. Slucajno sam naisao na nju prilikom reversovanja programa koji jebio pakovan i zasticen AsProtectom. Posle dosta razmatranja dosao sam dozakljucka da AsProtect koristi windowsovu API funkciju IsDebuggerPresentkoja se nalazi u kernel32.dll-u koja nema ulaznih parametara a vraca kaorezultat 1 ili 0 u zavisnosti da li je debugger detektovan. Kada se sve ovosroci u jednu Delphi funkciju to izgleda upravo ovako:function IsDebuggerPresent: Integer; stdcall; external 'kernel32.dll' name'IsDebuggerPresent';Kao sto je za SICE objasnjeno reversing ove funkcije se radi veomajednostavno. Ako otvorite isti primer koji samo koristili u proslom delupoglavlja. Ako postavimo break-point na IsDebuggerPresent pokrenemoprogram i pritisnemo dugme Test Debugger API zavrsicemo u kernel32.dll-ua posle izvrsenja RET komande nacicemo se ovde:0045229A 8BC0 MOV EAX,EAX0045229C . E8 F3FFFFFF CALL IsDebuggerPresent

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

Saved successfully!

Ooh no, something went wrong!