我正在尝试反汇编一个巨大的函数,但由于IDA的大小,IDA拒绝显示函数的图形 .
如何将IDA 5.0配置为显示超过1000个节点?
这是免费版本,不允许您调整阈值 .
1)在IDA中打开IDA本身(idaq.exe) .2)转到字符串窗口,搜索"The graph is too big",您将找到负责该消息的格式字符串 .3)跳转到它的交叉引用 .4)在推送格式字符串的指令上方几行,我们看到"cmp eax, 3E8h" . 由于3E8h是十进制的1000,我们可以非常肯定这是检查节点数量的代码的一部分,如果数量超过1000个节点则不显示图形 .5)现在有很多方法可以解决这个问题 . 我们可以将"jbe"指令更改为"jmp",或者用更大的数字替换3E8h,例如FFFFFFFFh .6)由于我们无法在IDA中修补文件,因此我们必须使用十六进制编辑器来打开idaq.exe . 搜索指令"3D E8 03 00 00",我们找到位置(我的版本为150EF) . 对我来说,我只是将"E8 03"更改为"FF FF" .
你有它,删除这个任意限制 .
1 回答
这是免费版本,不允许您调整阈值 .
1)在IDA中打开IDA本身(idaq.exe) .
2)转到字符串窗口,搜索"The graph is too big",您将找到负责该消息的格式字符串 .
3)跳转到它的交叉引用 .
4)在推送格式字符串的指令上方几行,我们看到"cmp eax, 3E8h" . 由于3E8h是十进制的1000,我们可以非常肯定这是检查节点数量的代码的一部分,如果数量超过1000个节点则不显示图形 .
5)现在有很多方法可以解决这个问题 . 我们可以将"jbe"指令更改为"jmp",或者用更大的数字替换3E8h,例如FFFFFFFFh .
6)由于我们无法在IDA中修补文件,因此我们必须使用十六进制编辑器来打开idaq.exe . 搜索指令"3D E8 03 00 00",我们找到位置(我的版本为150EF) . 对我来说,我只是将"E8 03"更改为"FF FF" .
你有它,删除这个任意限制 .