ida batch_decompile
0.1
反编译所有东西!
IDA Batch Decompile 是 Hex-Ray IDA Pro 的一个插件,它添加了批量反编译多个文件及其导入的功能,并带有附加注释(外部引用、堆栈变量大小)到伪代码 .c 文件
嘘! - ida-batch_decompile也是项目的一部分:unbox - 一个简单的命令行工具,用于解压和反编译各种东西。
打开目标,等待分析完成
IDA Pro -> File/Script file... -> <this_python_script>
IDA Pro -> File/Produce file-> IdaDecompileBatch ...
勾选Annotate StackVarSize
、 Annotate Func XRefs
点击OK
即可反编译。
注意:文件将作为<target_image_name.c>
保存在目标文件夹中
<path_to_ida>/ida(w|w64)(.exe) -B -M -S"<path_to_this_script> "--option1" "--option2"" "<target>"
请注意,选项需要用“引用"
可用选项,请参阅--help
--output ... output file path --annotate-stackvar-size ... annotate function stack variable sizes --annotate-xrefs ... annotate function xrefs --imports ... process imports --recursive ... recursive batch decompile --experimental-decompile-cgraph ... experimental: manually decompile function call graph
请遵循 IDA Pro 文档了解如何添加 python 插件。
IDA Pro -> File/Produce file -> IdaDecompileBatch ...
[__main__/36908][DEBUG] [idabatchdecompile.PLUGIN_ENTRY] [+] 初始化 IdaDecompileBatchPlugin[__main__/36908][DEBUG] [idabatchdecompile.__init__ ] [+] is_windows: True[__main__/36908][DEBUG] [idabatchdecompile.__init__ ] [+] is_ida64: False[__main__/36908][DEBUG] [idabatchdecompile.wait_for_analysis_to_finish] [+] 等待分析完成... [__main__/36908][DEBUG] [idabatchdecompile.wait_for_analysis_to_finish] [+] 分析完成。 [__main__/36908][DEBUG] [idabatchdecompile.load_plugin_decompiler] [+] 尝试加载反编译器插件[__main__/36908][DEBUG] [idabatchdecompile.load_plugin_decompiler] [+] 已加载反编译器插件。 [__main__/36908][DEBUG] [idabatchdecompile.PLUGIN_ENTRY] [+] 模式:命令行,不带参数[__main__/36908][DEBUG] [idabatchdecompile.set_ctrl] [+] IdaDecompileBatchPlugin.set_ctrl(<__main__.IdaDecompileBatchController 对象位于0x056FCF90>) [__main__/36908][调试] [idabatchdecompile.init] [+] IdaDecompileBatchPlugin.init() [__main__/36908][DEBUG] [idabatchdecompile.init] [+] 设置菜单[__main__/36908][INFO] [idabatchdecompile.PLUGIN_ENTRY] [i] IdaDecompileBatch 已加载,请参阅菜单:('文件/生成文件/', 'IdaDecompileBatch ...') ...该应用程序已被完全反编译。 [__main__/36908][DEBUG] [idabatchdecompile.decompile_all] [+] 已完成将“dbghelp.dll”反编译为“dbghelp.c”
//----- (03052800) ---------------------------------------- ----------------// **** 变量 ****// * 堆栈大小: 20 // {"diff_size": 4, "offset_text": "[bp +0h]”,“大小”:4,“名称”:“s”,“偏移量”:0} // {“diff_size”:4,“offset_text”: "[bp+4h]", "size": 4, "name": " r", "offset": 4}// {"diff_size": 4, "offset_text": "[bp+8h]", " size": 4, "name": "arg_0", "offset": 8}// {"diff_size": 4, "offset_text": "[bp+Ch]", "size": 4, "name": "dwBytes", "offset": 12}// {"diff_size": 4, "offset_text": "[bp+10h]", "size": 4, "name": "arg_8" , "偏移量": 16}// ******************// ***** XREFS *****// * # 1// sub_30733D0+ 30// ******************int __stdcall sub_3052800(int a1, SIZE_T dwBytes, int a3) { int 结果; // eax@17 手柄 v4; // eax@21...
//github.com/tintinweb