首先观察一下 uf KERNELBASE!IsDebuggerPresent
函数的汇编代码 。
0:004> uf KERNELBASE!IsDebuggerPresentKERNELBASE!IsDebuggerPresent:00007ffb`0fe468a0 65488b042560000000 movrax,qword ptr gs:[60h]00007ffb`0fe468a9 0fb64002movzxeax,byte ptr [rax+2]00007ffb`0fe468ad c3ret
接下来在 00007ffb0fe468ad
处下一个断点 , 即位置 KERNELBASE!IsDebuggerPresent + 0xd
,然后使用寄存器修改命令 r
修改 eax 的值,再让程序 gc 即可,脚本代码如下:
0:004> bp KERNELBASE!IsDebuggerPresent+0xd "r eax =0; gc"0:004> g
文章插图
可以看到,此时的程序又是笑哈哈的 。
三: 总结这篇文章无意对抗,只是对一个疑难问题寻求解决方案的探索,大家合理使用 。
推荐阅读
- 当贝f3和极米h3坚果j10对比评测
- 怎样吸烟才能降低吸烟对身体的伤害(少吸烟和不吸烟的区别)
- 荣耀50se和opporeno6对比_荣耀50se和opporeno6哪个好
- 华为手环6与小米手环6对比_哪个更值得入手
- 华为nova9Pro和lQO0Z5区别对比_哪款更值得入手
- iPhone13Pro和荣耀Magic3Pro拍照对比_iPhone13Pro拍照评测
- 漫步者funbuds怎么配对_漫步者funbuds使用说明
- MatePad11和ipad2020哪个好〖科技未来〗-MatePad11和ipad2020对比
- 不是面对面怎么加微信好友(微信怎么开启面对面加好友)
- 附:2种实现方式详细对比 Java 动态代理原理图解