-
-
[翻译]x64与反调试
-
发表于:
2010-12-14 01:59
9213
-
还有个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技术,会得到假的检测调试器外!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课