我正在尝试使用 IDA v6.95 反转 ELF (C++) 二进制文件。反编译器抱怨调用分析失败。我正在附加IDB 数据库。我该怎么做才能修复 IDB?
为什么 IDA 调用分析失败?
逆向工程
艾达
反编译器
2021-06-15 00:28:35
1个回答
Call analysis failed at: 08048B19
该位置的指令:
call __ZNSaIcEC1Ev ; std::allocator<char>::allocator(void)
现在反编译这个函数:
int __stdcall std::allocator<char>::allocator(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) {
return std::allocator<char>::allocator(a1, a2, a3, a4, a5, a6, a7, a8);
}
请注意,hexrays 的函数签名是错误的,它需要太多的参数。改成后:
void __stdcall std__allocator_char___allocator()
主函数将反编译。
请注意,hexrays 不接受函数原型中的模板参数<char>和命名空间说明符std::。由于更改原型不会重命名函数,您可以用任何名称替换函数名称,只要 ida 认为它有效。
其它你可能感兴趣的问题