【已解决】为什么IDA和x32debug的调试结果与OD的不一样?
本帖最后由 lao1ao 于 2024-9-2 22:46 编辑在做一道CTF题的时候,遇到了要动调的问题。WP都是OD调试的,本着开了IDA就不想换软件的懒人思想,就用IDA动调了,发现跟OD的完全不一样,后来试了一下dbg也不一样,懵逼ing
如图所示,ida和x32dbg出来的ecx值都是7e,为什么就只有od是2a?
题目:
通过百度网盘分享的文件:351a2f05-3848-4de6-9c9d-6e28c946f07...
链接:https://pan.baidu.com/s/1WZDZFIeQ2YLED-g23j48rw?pwd=b5rf
提取码:b5rf
本帖最后由 爱飞的猫 于 2024-9-2 03:52 编辑
你下的 OD 应该是自带了过调试器检测插件,但 x32dbg (x64dbg) 和 IDA 默认没给你集成这类插件…
既然你都用 IDA Pro 了,看下伪码。正常代码不需要爬 PEB 的。看到不懂的搜索下就知道在干嘛了。
if ( (NtCurrentPeb()->NtGlobalFlag & 0x70) != 0 )// FLG_HEAP_ENABLE_TAIL_CHECK (0x10)
// FLG_HEAP_ENABLE_FREE_CHECK (0x20)
// FLG_HEAP_VALIDATE_PARAMETERS (0x40)
// 调试器检测,不是调试器应为 0
v12 = j + i;
v16 = rc4_s[(unsigned __int8)(v7 + v12)] ^ v15;
if ( (unsigned __int8)*(_DWORD *)&NtCurrentPeb()->BeingDebugged ) // 这个名字很明显了吧
{
j = 0xAD;
i = 0x2B;
} 要多向楼上的学习。 我也要多向二楼学习! 爱飞的猫 发表于 2024-9-2 03:50
你下的 OD 应该是自带了过调试器检测插件,但 x32dbg (x64dbg) 和 IDA 默认没给你集成这类插件…
既然你 ...
感谢大大!看源码的时候,看着跟flag没啥相关就自动略过了,学习到了(o゚v゚)ノ
页:
[1]