还有个EXE文件,原文地址http://forum.exetools.com/showthread.php?t=12726,下载不了,要邀请注册

在逆向中,反调试技巧一直是一个非常有趣的事情,由于对X64的硬件和OS'es到来,虽然有些东西已经改变.

前些日子,我碰到一个X64的软件,总是在某测试系统的检测调试不成功。跳水此事,并在调试器下的所有规避反调试技巧

它工作得很好。外界调试faillure理由证明是众所周知的代表stos / movs伎俩.

代码:

Example code

  t1 equ goodboy-badboy-2
  new: db 0EBh,01,81h,0EBh,t1

   ; cut //

  lea rsi,[new]
  lea rdi,[here]
  mov rdx,[rdi]
  mov rcx,3
  here:
  rep movsw
  badboy:
  mov r9,30h
  lea r8,[DebugStatus]
  lea rdx,[DbgFoundText]
  xor rcx,rcx
  invoke MessageBox      ; badboy!
  jmp Exit
  goodboy:
  mov r9,40h
  lea r8,[DebugStatus]
  lea rdx,[DbgNotFoundText]
  xor rcx,rcx
  invoke MessageBox      ; goodboy!

   ; cut //
rep stos / movs招式不需要进一步解释,因为大家都知道这一点,因为16位系统,然而,在X64位下使用被警告
,为了测试,我附上一个EXE文件测试,单步它F7键(在MessageBox的调用F8键),它会永远检测你
不过我敢肯定,一个很小的比例,拥有最新的X64的CPU技术,会得到假的检测调试器外!