IDA出现“sp-analysis failed”和F5无法反编译的解决方法

IDA出现“sp-analysis failed”和F5无法反编译的解决方法

只会看别人writeup的小白一枚
最近刚刚学习逆向知识,并开始尝试做creakme,果然出现了各种稀奇古怪的问题,逆向creakme后出现“endp ;sp-analysis failed”,没办法F5反编译,对我这种小白真的太不友好了,在此记录一下。

“endp ;sp-analysis failed”
这种可能是存在花指令或者函数被拆分,导致IDA无法继续分析。
解决方法如下:
勾选IDA的Options-General-Disassembly-“Stack pointer”,打开堆栈指针
打开堆栈指针
从下图可以看到堆栈指针出现负值
堆栈指针
这里介绍两种方法:
第一种是直接更改堆栈指针不平衡
可以看到红色错误上面的负值为-C8,单击地址4A1A90,按下Alt+K,更改sp的值为-0xC8后,就可以正常F5反编译了!
修改堆栈指针
第二种方法是直接更改地址
首先找到调用这一段(loc_4A1A7E)跳转的地址(4A1A2E)。
第二种
单击地址4A1A2E,点击Edit-Functions-“Delete function”,然后,选择地址.text:0040106E,点击Edit-Functions-“Set function End“。也可以点击右键“编辑函数”,将结束地址修改为4A1A92,这样也可以解决问题。
修改地址
小白努力活着,恳请大佬指正。

参考:
https://blog.csdn.net/lixiangminghate/article/details/78820388

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值