0%

IDA不能F5查看伪代码的解决方法(call analysis failed)

概述

选定代码段后,按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