概述
选定代码段后,按P创建函数,无法F5,提示call analysis failed
。
原因
1、IDA无法识别出正确的调用约定(calling convention);
2、IDA无法识别出正确的参数个数。
解决方案
方法1 - IDA自动分析
定位到报错的代码位置,双击调用的函数,进入后按一次F5,再返回就可以F5了。
方法2 - 修改参数个数
定位到报错的代码位置,鼠标点击调用的函数,按下Y键,修改参数个数。
比如将(_JNIEnv *, int, int, int, int, int, int, int);
改为(_JNIEnv *, int, int, int);
具体参数个数,需要根据函数调用约定及汇编代码确定(看它传入了几个参数)。
参考
IDA sp-analysis failed 不能F5的 解决方案之(二)
解决IDA出现Decompilation failure: call analysis failed不可以F5的问题
IDA反编译失败-call analysis failed