小编Jon*_*lle的帖子

你最喜欢的反调试技巧是什么?

在我以前的雇主,我们使用了第三方组件,它基本上只是一个DLL和一个头文件.该特定模块在Win32中处理打印.然而,制造该组件的公司破产了,所以我无法报告我发现的错误.

所以我决定自己修复bug并启动调试器.我很惊讶地发现几乎所有的反调试代码都是常见的IsDebuggerPresent,但引起我注意的是:

    ; some twiddling with xor 
    ; and data, result in eax 
    jmp eax 
    mov eax, 0x310fac09 
    ; rest of code here 
Run Code Online (Sandbox Code Playgroud)

乍一看,我刚刚跨过了被叫两次的例程,然后事情就变成了香蕉.过了一会儿,我意识到这个小小的结果总是一样的,即jmp eax总是跳到mov eax, 0x310fac09指令中.我解剖了字节,那里是用于测量DLL中某些调用之间花费的时间0f31rdtsc指令.

所以我的问题是:你最喜欢的反调试技巧是什么?

debugging x86 assembly reverse-engineering

25
推荐指数
3
解决办法
2万
查看次数

标签 统计

assembly ×1

debugging ×1

reverse-engineering ×1

x86 ×1