
Plugin IDA pour la détection automatisée de code obscurci et d'aplatissement du flux de contrôle dans les binaires à l'aide d'analyse heuristique et de visualisation d'arbre de dominance.
Auteur : mcdulltii
Détecter automatiquement le code obfusqué et autres machines d'état
Scripts pour détecter automatiquement le code obfusqué et les machines d'état dans les binaires.
L'implémentation est basée sur IDA 7.4+ (Python3). Consultez les articles de blog suivants pour plus d'informations sur l'implémentation Binary Ninja :
Les valeurs heuristiques sont générées à partir des articles de blog ci-dessus et sont triées (lorsqu'exécutées en mode All Functions) de haut en bas en fonction de leurs complexités heuristiques.
En raison de la nature récursive du tracé d'un arbre de dominance pour chaque fonction trouvée dans le binaire, l'implémentation et la surcharge d'exécution sont coûteuses, bien que le threading ait été implémenté.
En utilisant PyQt pour visualiser le plugin, les utilisateurs peuvent personnaliser davantage l'analyse des fonctions heuristiques sur le binaire.
PyQt5
Copiez le répertoire obfDetect et obfDetect.py dans le répertoire des plugins IDA.
Lorsque IDA a fini de charger un binaire avec succès, le script affiche sa bannière dans la console IDC/Python.
Le script peut être exécuté via la barre d'outils File comme indiqué ci-dessous. Sinon, Ctrl-Shift-H.

Les noms de fonctions dans le tableau de sortie peuvent être renommés en utilisant n, et mettront ainsi à jour les noms de fonctions d'IDA spécifiés par leur adresse de fonction
La boîte de saisie du nom de fichier d'exportation, lorsqu'elle est cliquée, ouvre une fenêtre de sélection de fichier qui permet de naviguer vers un emplacement de sauvegarde personnalisé
Run pour démarrer l'analyseExport filename pour sélectionner l'emplacement d'exportation, puis cliquez sur le bouton Export pour exporter le tableau au format csv

