参考链接
http://www.360doc.com/content/17/0822/14/37835422_681229426.shtml
F5反编译失败原因
- positive sp value
成因:IDA会自动分析SP寄存器的变化量,由于缺少调用约定,参数个数等信息,导致分析出错(标准调用约定被调用者清理栈,c调用约定调用者清理)
解决方法: ALT + K 直接修改栈值 - call analysis failed
成因:调用分析失败,未能成功解析参数位置和参数个数 程序会崩溃,程序会提供一个地址
对于间接调用类似call eax可使用设置调用地址
对于直接调用,查看调用目标的type 是否正确,可变参数是引发这种错误的主要原因之一 - cannot convert to microcode
成因: 部分指令无法被反编译
有未设置成指令的数据字节按c将其设置成指令
其次是x86中的rep前缀,比如rep jmp等可以将该指令的第一个字节patch - stack frame is too big
成因:分析栈帧时有异常出现
解决方案:找到明显不合常理的stack 双击进入栈帧界面,按U键盘删除对应的stack
可能是加壳或者花指令导致,手动或自动检查并去掉花指令 - local variable allocation failed
分析函数 时,有部分变量对应的区域发生重叠,多见于ARM平台出现point rect等8字节,16字节,32字节结构时尤其多见
解决方案:
1、修改对应参数为多个int
2、修改ida安装目录下的hexrays .cfg的HO_ - noreturn函数
解决方案:
双击进入再返回(迫使HEXRays)
ALT+P edit(function) - Manual Load
32位和64位的代码混合存在,修改段寄存器, 在打开文件后的对话框, shift + E 单独拖出来 - 需表
HEXRAYScodexplorer
hex rays_tool
HexRaysPyTools下载地址
网友评论