-
-
[推荐]IDA sp-analysis failed 不能F5的 解决方案之(二)
-
发表于:
2012-11-20 11:20
36235
-
[推荐]IDA sp-analysis failed 不能F5的 解决方案之(二)
高手飘过~,本文章只想让搜索引擎收录,以便那些新手查找的。
如图,
代码是红色的,就是说IDA没有分析出来,为了方便分析,我们会用快捷键P(Create Function) 来创建函数.只是我们在函数头部 按P的时候 总会提示
The function has undefined instruction/data at the specified address.
Your request has been put in the autoanalysis queue.
大家注意 retn 后面两行多余的代码,这是罪魁祸首.如果我们不能创建函数,就不能使用F5来分析代码了,想让这些代码变绿色的方法(创建函数)很简单.
用鼠标从函数头部开始到 retn 结尾 拖一下,变成灰色.
然后用快捷键 P 或者右键菜单,CreateFunction 来创建函数就可以了。
用拖的方法,去创建一个函数的好处是,我们可以选择任意的一部分IDA分析不出来的代码(就是红色代码),成为一个绿色的代码(IDA可识别的代码).
当然了,到这里也不算完.下图是代码变绿色的,我用上面的方法创建函数了,可还是不能F5,
我们通过Stack Pointer 发现这个函数的堆栈是不平衡的.此时我们需要找接近retn 的 最后一个Call 然后去修正堆栈.
我们看到 retn 左边绿色的数字是 28,我们通过ALT + k 修正堆栈,把 28 retn 改成 0 就可以了。
修正堆栈的时候一定要选择 Call 然后修正堆栈,下图是修正后的 代码
很简单的一个东西,篇幅有点大了,可能存在一些问题,不过我的目的是F5就可以了 嘿嘿.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)