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.

Killing NAGs – MsgBoxes & Olly<br />

Posto smo vec pokazali skoro sve sto je vazno da se pokaze vezano za<br />

W32Dasm, sada cemo nauciti kako se traze NAGovi pomocu Ollya i kako se<br />

to sve NAG moze ukloniti. Meta koju cemo reversovati se nalazi u folderu<br />

Cas1 a zove se vct_crackme1.exe a na njenom OEPu nalazi se sledeci kod.<br />

00401000 . 6A 00 PUSH 0 ; /hTemplateFile = NULL<br />

00401002 . 6A 03 PUSH 3 ; |Attributes = READONLY<br />

00401004 . 6A 00 PUSH 0 ; |Mode = 0<br />

00401006 . 6A 00 PUSH 0 ; |pSecurity = NULL<br />

00401008 . 6A 00 PUSH 0 ; |ShareMode = 0<br />

0040100A . 6A 00 PUSH 0 ; |Access = 0<br />

0040100C . 68 9C314000 PUSH 0040319C ; |FileName = "\\.\SICE"<br />

00401011 . E8 24020000 CALL 0040123A ; \CreateFileA<br />

00401016 . 83F8 FF CMP EAX,-1<br />

00401019 . 74 06 JE SHORT dmp.00401021<br />

0040101B . 50 PUSH EAX ; /ExitCode<br />

0040101C . E8 1F020000 CALL ; \ExitProcess<br />

Ovaj kod ne predstavlja nista specijalno, ovo je samo standardan<br />

nacin za detekciju S<strong>of</strong>tICE debuggera pomocu CreateFileA komande.<br />

Pored vxd reference ka SotfICEu \\.\SICE takodje se pojavljuje i<br />

referenca \\.\NTICE ako se radi o NT sistemima. Da bismo ovu detekciju<br />

zaobisli, naravno ako koristite S<strong>of</strong>tICE, dovoljno je da patchujete JE skok<br />

sa adrese 00401019 u JMP. A ako pogledate malo ispod ovih par<br />

komandi primeticete da se tu nalazi prvi NAG. Taj deo koda izgleda ovako:<br />

00401021 > \6A 00 PUSH 0 ; /Style = MB_OK<br />

00401023 . 68 20304000 PUSH 00403020 ; |Title = "... nag ..."<br />

00401028 . 68 00304000 PUSH 00403000 ; |Text = "..."<br />

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

0040102F . E8 E2010000 CALL ; \MessageBoxA<br />

Naravno ubijanje NAG ekrana se radi veoma lako, naime potrebno je<br />

samo NOPovati sve PUSH komande koje prethode CALLu koji se koristi<br />

za prikazivanje NAGa a na kraju i sam CALL. Operacija NOPovanja se<br />

radi duplim klikom na selektovanu komandu i unosenjem reci NOP u<br />

novo-otvoreni prozor. Posle klika na OK ili Olly ce selektovanu<br />

komandu promeniti u NOP, posle cega se ona nece vise izvrsavati. Dakle<br />

posle NOPovanja svih ovih komandi imacemo sledece stanje:<br />

00401021 90 NOP<br />

00401022 90 NOP<br />

...<br />

0040102F 90 NOP<br />

00401030 90 NOP<br />

00401031 90 NOP<br />

00401032 90 NOP<br />

00401033 90 NOP<br />

Posto postoji jos jedan NAG u programu potrazicemo ga traceovanjem<br />

kroz kod, to jest pritiskanjem na F8 sve dok ne dodjemo do sledeceg CALLa:<br />

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

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

Saved successfully!

Ooh no, something went wrong!