反调试 Fake F8

2020-04-04  本文已影响0人  欧皇ff

欺骗单步步过调试

DTDebug 调试工具快捷键

快捷键 作用 注释
F7 单步步入 设置EFLAGS的TF位为1 调试CALL指令进入CALL内部
F8 单步步过 在指令下一行设置断点
F2 插入断点 修改当前内存的地址的值为 0xCC INT 3
call 0x005021D0
jmp 0x00502041

mov eax,1
mov ecx,2
mov edx,3
retn

一步一步运行至ret
然后进入jmp指令行


F7调试

EFL标志寄存器中有个TF位;如果TF置1,当前CPU就会进入单步执行模式。
F7就是设置EFL的TF位。


EFL F7调试中TF为的值

直接把call ···· ret 看做一行,直接跳转到jmp指令行


F8调试

反调试F8 就是破坏CALL指令的正常运行逻辑。
JMP PUSH POP
CALL 修改下一步执行地址EIP,CALL指令下一行指令地址入栈,ESP+4,当前堆栈保存下一行指令地址。
破坏ESP保存的地址,达到F8跟踪失败,F7还是可以正常追踪的。
以当前经验破坏F8调试,就是多个CALL指令嵌套,随机在一个CALL中使用修改正常的地址,其他都是用来消耗反调试人的耐心,以达到反调试的目的。

上一篇 下一篇

猜你喜欢

热点阅读