lao1ao 发表于 2024-9-2 01:45

【已解决】为什么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:50

本帖最后由 爱飞的猫 于 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;
    }

sunsjw 发表于 2024-9-2 09:28

要多向楼上的学习。

darkf 发表于 2024-9-2 14:04

我也要多向二楼学习!

lao1ao 发表于 2024-9-2 22:48

爱飞的猫 发表于 2024-9-2 03:50
你下的 OD 应该是自带了过调试器检测插件,但 x32dbg (x64dbg) 和 IDA 默认没给你集成这类插件…

既然你 ...

感谢大大!看源码的时候,看着跟flag没啥相关就自动略过了,学习到了(o゚v゚)ノ
页: [1]
查看完整版本: 【已解决】为什么IDA和x32debug的调试结果与OD的不一样?