Hex-Ray 的反编译器插件问题,重新定义“vsscanf”

逆向工程 艾达 idapro插件 idapro-sdk
2021-07-03 04:12:07

我目前正在为 IDA 6.2 上使用的 Hex-Ray 反编译器编写插件。基本要点是它应该获取反编译的函数并对其运行一些自动分析,没什么特别的。

我的问题是,显然 IDA 重新定义vsscanfpro.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 不兼容。

1个回答

你不应该包含stdio.h在你的插件中;只需使用 in 中的函数即可pro.h