-
-
IDA 9.x可选的反编译器【秒开版】
-
发表于:
2026-3-15 11:16
1028
-
在上次的帖子中我将Ghidra12.x的反编译器移植到IDA9.x中了,那个版本工作的很好就是反编译速度太慢,因为每次反编译一个函数都会调用Ghidra的analyzeHeadless.bat脚本,每次执行脚本都会重新载入可执行文件的内容,然后反编译,所以速度很慢。
这段时间我又研究了加速的方法,总体思路是让analyzeHeadless.bat脚本启动后就不退出了,同时在Java端开启一个网络服务器监听1204端口,IDA的Python环境通过网络连接到服务器上,并通过网络协议发送反编译请求。这样就只有第一次反编译需要载入可执行文件的内容,在之后的反编译中由于没有载入的动作而是直接执行反编译,所以速度会快很多。
要实现加速效果,必须修改Ghida的源码,修改后的源码编译后的class文件在附件中也提供了,用该文件替代Ghidra发行版的jar包中的文件就可以了。
【使用方法】:
下载Ghidra12.x的发行版本并解压,参考该网址确保Ghidra可以正常工作。
将附件中的文件解压,将解压后的ghida.py文件和ghida_plugin目录拷贝到IDA9.x的plugins目录下
修补Ghidra12.x的jar文件,需要patch两个文件,一个是DecompInterface.class,一个是DecompileProcess.class。首先进入特定目录,以ghidra_12.0.4_PUBLIC为例:首先进入 ghidra_12.0.4_PUBLIC/Ghidra/Features/Decompiler/lib目录。然后在该目录下新建三个空目录ghidra/app/decompiler,注意app目录在ghidra下,decompiler目录在app目录下。然后在ghidra_12.0.4_PUBLIC/Ghidra/Features/Decompiler/lib目录下打开命令行并执行以下两条指令:
cp DecompInterface.class D:/ghidra_12.0.4_PUBLIC/Ghidra/Features/Decompiler/lib/ghidra/app/decompiler && jar uf Decompiler.jar ghidra/app/decompiler/DecompInterface.class
cp DecompileProcess.class D:/ghidra_12.0.4_PUBLIC/Ghidra/Features/Decompiler/lib/ghidra/app/decompiler && jar uf Decompiler.jar ghidra/app/decompiler/DecompileProcess.class
这两条指令有三点需要说明,DecompInterface.class和DecompileProcess.class在附件中提供,将这两个文件拷贝到ghidra_12.0.4_PUBLIC/Ghidra/Features/Decompiler/lib目录下,还需要修改 demo指令中的ghidra_12.0.4_PUBLIC为你下载并解压的Ghidra12.x实际目录,这两条指令执行后正常情况下是不会有任何输出信息的。
4.安装Python依赖
pip install requests
pip install pygments
5.打开IDA9.x,在想要反编译的函数地址处使用快捷键Ctrl+Alt+D,在弹出的对话框里输入你的Ghidra12.x的解压根目录,如D:\ghidra_12.0.4_PUBLIC,点击OK按钮,接下来就可以反编译了。
[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!
最后于 2026-3-15 18:41
被zhzhz编辑
,原因: