¡Descompila todas las cosas!
IDA Batch Decompile es un complemento para IDA Pro de Hex-Ray que agrega la capacidad de descompilar por lotes varios archivos y sus importaciones con anotaciones adicionales (refx, tamaño de pila var) al archivo pseudocódigo .c.
¡pssst! - ida-batch_decompile también forma parte del proyecto: unbox, una sencilla herramienta de línea de comandos para descomprimir y descompilar todo tipo de cosas.
Abra el objetivo, espere a que finalice el análisis.
IDA Pro -> File/Script file... -> <this_python_script>
IDA Pro -> File/Produce file-> IdaDecompileBatch ...
marque Annotate StackVarSize
, Annotate Func XRefs
haga clic en OK
para descompilar.
Nota: El archivo se guardará en la carpeta de destino como <target_image_name.c>
<path_to_ida>/ida(w|w64)(.exe) -B -M -S"<path_to_this_script> "--option1" "--option2"" "<target>"
Tenga en cuenta que las opciones deben citarse con "
Opciones disponibles, consulte --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
Siga la documentación de IDA Pro sobre cómo agregar complementos de Python.
IDA Pro -> File/Produce file -> IdaDecompileBatch ...
[__main__/36908][DEBUG] [idabatchdecompile.PLUGIN_ENTRY] [+] inicializando 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] [+] esperando a que finalice el análisis... [__main__/36908][DEBUG ] [idabatchdecompile.wait_for_analysis_to_finish] [+] análisis finalizado. [__main__/36908][DEBUG] [idabatchdecompile.load_plugin_decompiler] [+] intentando cargar complementos del descompilador[__main__/36908][DEBUG] [idabatchdecompile.load_plugin_decompiler] [+] complementos del descompilador cargados. [__main__/36908][DEBUG ] [idabatchdecompile.PLUGIN_ENTRY ] [+] Modo: línea de comando sin argumentos[__main__/36908][DEBUG ] [idabatchdecompile.set_ctrl ] [+] IdaDecompileBatchPlugin.set_ctrl(<__main__.IdaDecompileBatchController objeto en 0x056FCF90>) [__main__/36908][DEBUG] [idabatchdecompile.init] [+] IdaDecompileBatchPlugin.init() [__main__/36908][DEBUG ] [idabatchdecompile.init ] [+] configurando menús[__main__/36908][INFO ] [idabatchdecompile.PLUGIN_ENTRY ] [i] IdaDecompileBatch cargado, ver Menú: ('Archivo/Producir archivo/', 'IdaDecompileBatch...') ... La aplicación ha sido completamente descompilada. [__main__/36908][DEBUG] [idabatchdecompile.decompile_all] [+] terminó de descompilar 'dbghelp.dll' como 'dbghelp.c'
//----- (03052800) ---------------------------------------- ----------------// **** Variables ****// * tamaño de pila: 20// {"diff_size": 4, "offset_text": "[pb +0h]", "tamaño": 4, "nombre": " s", "offset": 0}// {"diff_size": 4, "offset_text": "[pb+4h]", "tamaño": 4, "nombre": " r", "desplazamiento": 4}// {"diff_size": 4, "offset_text": "[bp+8h]", "tamaño": 4, "nombre": "arg_0", " offset": 8}// {"diff_size": 4, "offset_text": "[bp+Ch]", "size": 4, "name": "dwBytes", "offset": 12}// {"diff_size": 4, "offset_text": "[pb+10h]", "size": 4, "name": "arg_8", "offset": 16}// ********* **********// ***** XREFS *****// * # 1// sub_30733D0+30// **************** ****int __stdcall sub_3052800(int a1, TAMAÑO_T dwBytes, int a3) {int resultado; // eax@17 MANGO v4; // eax@21...
//github.com/tintinweb