我用重新定义克服了最近的问题,并完成了我的插件。

简而言之,此插件使用Hex-Rays反编译器反编译给定的文件,分析伪代码的属性,然后将结果附加到.csv

现在我尝试在批处理模式下使用它,但由于发生以下情况而陷入困境:

调用IDA的Cmd输入:

idaw -A -c -Srecompile.idc input_file


recompile.idc文件:

#include <idc.idc>
static main() {
Wait();
Message("Hello world from IDC!\n");
RunPlugin("REcompile vs Hexrays",0); 
//Exit(0);
}


我显然需要Wait()进行自动分析。 Exit()已被注释,因为它已固定使用,现在可以使用。

现在我在执行时得到以下输出:

The initial autoanalysis has been finished.
Hello world from IDC!

LoadLibrary(C:\Program Files (x86)\IDA\plugins\REcompile vs Hexrays.plw) error: Das angegebene Modul wurde nicht gefunden.
C:\Program Files (x86)\IDA\plugins\REcompile vs Hexrays.plw: can't load file
Hex-Rays Decompiler plugin has been loaded (v1.6.0.111005)
Hex-rays version 1.6.0.111005 has been detected, REcompile vs Hexrays ready to use


可以在加载插件之前看到脚本已执行。我认为这就是为什么我会收到LoadLibrary错误的原因。
如果您对插件批处理执行还有其他意见或经验,我将很高兴收到您的来信。 >问候,
Viktor

#1 楼

您是否在加载插件之前尝试过手动加载Hex-Rays插件?

例如:

#include <idc.idc>
static main() {
    Wait();
    Message("Hello world from IDC!\n");
    RunPlugin("hexrays",0);
    RunPlugin("REcompile vs Hexrays",0); 
    //Exit(0);
}


评论


非常感谢,这解决了。我实际上犯了一个双重错误,即使用了wanted_name()而不是.plw文件名。再次感谢!

– Viktor K
14年7月24日在16:05

很高兴它有效!是的,关于RunPlugin()的第一个参数的文档不是很清楚。

–詹森·格夫纳(Jason Geffner)
2014年7月24日在16:33