目标程序是这篇贴子我构造的OEP为0的DEMO. 链接:http://bbs.ollydbg.com/forum.php?mod=viewthread&tid=12&extra=page%3D1
加载目标程序, 没有任何事件到达, 直接就是 0xC0000005 异常.
一开始以为是64位调试的问题, 换成 32位的也同样有这种异常.
x64异常地址是: 0x00007ff8_01685716
x32异常地址是: 0x01685716
2022-03-18 08:03:28:0057 地址: [C:\Windows\SysWOW64\ntdll.dll]
2022-03-18 08:03:33:0803 异常第1次来: 01685716 线程ID:0001f630
然后试了其它几个调试器, 其中od1.x od2.x x64dbg 等调试都没有问题,可以正常运行.
mdebug yzdbg qtNanomite 等调试器, 会抛出同样的异常..
原因还不清楚, 改天空了,再继续研究.
有知道原因的,可以跟帖说明.
----------------------------------
2022.03.19
刚刚分析了一下, 原来是因为调试器启动的时候,默认会在OEP处下个0xCC断点. 由于OEP为0 那就相当于是在 基地址写入了CC,
也是就是把Magic标志的 'M' 0x4D 修改成 0xCC.可能是系统找不到magic了, 所以抛一个这样诡异的异常. 具体的,等空了再研究.
to be continued..
----------------------------------
|