我目前正在为 IDA 6.2 上使用的 Hex-Ray 反编译器编写插件。基本要点是它应该获取反编译的函数并对其运行一些自动分析,没什么特别的。
我的问题是,显然 IDA 重新定义vsscanf了pro.h文件中的函数,该函数已在stdio.h.
准确地说,执行此操作的代码段如下(pro.h文件中的第 426-428 行):
// non standard functions are missing:
#ifdef _MSC_VER
AS_SCANF(2, 0) int idaapi vsscanf(const char *input, const char *format, va_list va);
现在,老实说,我不知道如何解决这个问题,并且在网上搜索时找不到任何像样的线索。我尝试在 Win7 x64 上用 MS Visual Studio 2013 编译它。但是,没有成功。
我最好的建议是 IDA 在用 MSVS 编译时会尝试这个定义。 如这里所见。
我的考虑之一是尝试更改pro.h文件。但是,我真的不确定这会如何解决。
提前感谢您的时间。
编辑:我通过恢复到 MSVS 2010 解决了这个问题。显然 IDA 6.2/sdk 6.2 与现代 MSVS 2013 不兼容。