IDA出现不能进行F5,”F1EC:positive sp value has been found!!!!!“的解决方法

IDA出现不能进行F5,”F1EC:positive sp value has been found!!!!!“的解决方法

一、在用IDA分析So文件,F5的时候经常会出现以上这种情况,这个时候可能是以下导致的:

1.栈sp不平衡:

比如360加固中的libjiagu.so中的虚拟机解释函数。

首先打开栈指针选项,在options--------->General--------------->Disassembly

这个时候G键跳到”F1EC“的地方:

可以看到是个负值,指向它的上一行”alt+k“,改为0x90。

接着再F5,同样的改10428处。

这个时候就能F5了。

 

 

2.干扰指令:

可能是ida对于一些干扰sp的指令错误判断,这个时候可以把这些错误的指令进行NOP以免影响IDA的正确分析,就可以F5了;

 

3.上下文导致的IDA分析卡住

IDA不能够得到控制流图以及不能F5

这个时候大部分是可以通过在函数的开头”P“来进行解决;同时也可以先选部分的代码进行"P",然后再F5,最后再把范围扩大这样就可以把整个的伪代码得到。

4.对于一些代码段,IDA错误的分析,出现一些错误的数据

这个时候可以先”U“一下,然后再”C“让IDA重新进行分析生成代码。

总结:

遇到不能F5或者是控制流断层错误的迷惑IDA的,都是由于IDA去分析程序出现了”误解“,这个时候可能是程序本身造成的,也有可能是软件保护者利用IDA本身的一些分析漏洞去故意让它识别错误,进一步的去了解IDA的反汇编原理有助于我们更好的去分析程序代码。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值