Décompilez tout !
IDA Batch Decompile est un plugin pour IDA Pro de Hex-Ray qui ajoute la possibilité de décompiler par lots plusieurs fichiers et leurs importations avec des annotations supplémentaires (xréf, taille de la variable de pile) au fichier pseudocode .c.
pssst! - ida-batch_decompile fait également partie du projet : unbox - un outil en ligne de commande simple pour décompresser et décompiler toutes sortes de choses.
cible ouverte, attendez la fin de l'analyse
IDA Pro -> File/Script file... -> <this_python_script>
IDA Pro -> File/Produce file-> IdaDecompileBatch ...
cochez Annotate StackVarSize
, Annotate Func XRefs
cliquez sur OK
pour décompiler.
Remarque : Le fichier sera enregistré dans le dossier cible sous le nom <target_image_name.c>
<path_to_ida>/ida(w|w64)(.exe) -B -M -S"<path_to_this_script> "--option1" "--option2"" "<target>"
Notez que les options doivent être citées avec "
Options disponibles, voir --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
Suivez la documentation IDA Pro pour savoir comment ajouter des plugins Python.
IDA Pro -> File/Produce file -> IdaDecompileBatch ...
[__main__/36908][DEBUG ] [idabatchdecompile.PLUGIN_ENTRY ] [+] initialisation d'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] [+] en attente de la fin de l'analyse... [__main__/36908][DEBUG ] [idabatchdecompile.wait_for_analysis_to_finish] [+] analyse terminée. [__main__/36908][DEBUG ] [idabatchdecompile.load_plugin_decompiler] [+] tentative de chargement des plugins de décompilation[__main__/36908][DEBUG ] [idabatchdecompile.load_plugin_decompiler] [+] plugins de décompilation chargés. [__main__/36908][DEBUG ] [idabatchdecompile.PLUGIN_ENTRY ] [+] Mode : ligne de commande sans arguments[__main__/36908][DEBUG ] [idabatchdecompile.set_ctrl ] [+] IdaDecompileBatchPlugin.set_ctrl(<__main__.IdaDecompileBatchController objet à 0x056FCF90>) [__main__/36908][DEBUG ] [idabatchdecompile.init ] [+] IdaDecompileBatchPlugin.init() [__main__/36908][DEBUG ] [idabatchdecompile.init ] [+] configuration des menus[__main__/36908][INFO ] [idabatchdecompile.PLUGIN_ENTRY ] [i] IdaDecompileBatch chargé, voir Menu : ('Fichier/Produire un fichier/', 'IdaDécompileBatch...') ... L'application a été entièrement décompilée. [__main__/36908][DEBUG ] [idabatchdecompile.decompile_all ] [+] a terminé la décompilation de 'dbghelp.dll' en 'dbghelp.c'
//----- (03052800) ---------------------------------------- -// **** Variables ****// * taille de la pile : 20// {"diff_size": 4, "offset_text": "[bp +0h]", "size": 4, "name": " s", "offset": 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", "offset": 16}// ********* **********// ***** XREFS *****// * # 1// sub_30733D0+30// *************** ****int __stdcall sub_3052800(int a1, SIZE_T dwBytes, int a3) {int résultat ; // eax@17 POIGNÉE v4 ; // eax@21...
//github.com/tintinweb