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