sp-analysis failed

在使用ida做逆向时发现main2函数底部出现:main2     endp ; sp-analysis failed,刚使用ida打开时main2函数还没有出现栈指针分析失败。估计在分析时不正确的修改致使ida对栈指针分析出错。图如下:

一个明显错误的地方就是0X00403C22到0X00403C27处,在调用了firstClass_Init函数(有一个参数)后,栈顶指针还是02C,没有变成028,解决办法:

1、在0X00403C22处点击02C栈顶,右键点击Change stack pointer…(快捷键Alt+K),修改成0X4,如下图:


修改之后此处显示正常。但是函数结束处依旧有:sp-analysis failed

2、选择编辑函数,把0X24修改成0X14,如下图:


此时依旧sp-analysis failed

3、同第二步,只是要修改firstClass_Init函数,0x10。如下图:


sp-analysis failed在main2函数底部消失。

造成栈顶分析失败的原因有很多,这只是其中一种,并不能用来解决所有的栈顶分析失败。

更详细的原因可以参考《IDA Pro权威指南》第90页函数特性。


不止一次遇到栈指针分析错误的情况,总结以下几点:

1、确定本函数的栈大小、传入参数数量、是否保存寄存器,对本函数做响应修改


2、在本函数内部分析每一行的栈指针,看ida有没识别错误的,如果有识别错误的通过Alt+K修改过来

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拜乔布斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值