Ingénierie inverse avec Binary Ninja
Utilisez Binary Ninja lorsque l'utilisateur le sélectionne explicitement, lorsque ses IL aident matériellement l'analyse du flux de données, ou lorsque les résultats d'IDA/Ghidra/radare2 nécessitent une vérification croisée indépendante.
Démarrage en sécurité
- Assurez-vous que le périmètre du cas de dépôt est prêt avant d'agir sur une cible.
- Consultez
skills/tool-index.mdpourbinaryninja; Binary Ninja est un logiciel commercial et doit être installé manuellement avec une licence Vector 35 valide. - Travaillez sur une copie lors de l'application de correctifs ou de la sauvegarde des modifications de la base de données.
- Enregistrez les importations/exportations, les points d'entrée, l'architecture et le hachage du fichier avant de promouvoir des conclusions.
Choisissez l'intégration
- Interface graphique ou API Python : privilégiée lorsque Binary Ninja est déjà ouvert ou que l'utilisateur souhaite une analyse interactive directe.
- Pont MCP communautaire : à utiliser uniquement sur demande explicite et après avoir examiné les limites du plugin tiers. Maintenez l'écouteur HTTP de Binary Ninja sur
127.0.0.1:9009; n'activez pas l'exposition réseau par défaut. - Solution de repli : utilisez
ghidra-reverse,ida-reverseouradare2lorsque Binary Ninja est indisponible ou que sa licence/API ne peut pas ouvrir la cible.
L'intégration communautaire examinée est fosdickio/binary_ninja_mcp, GPL-3.0, version des métadonnées du plugin 1.1.0, build minimum de Binary Ninja 4000. Ce dépôt n'est pas un composant officiel de Vector 35. Cette compétence a été vérifiée par rapport au commit 8c5134ee46e2bf44f9a4d846bd971c3e39b3e306 le 2026-09-03.
Installez le côté Binary Ninja via son gestionnaire de plugins ou à partir de la source examinée. Pour le pont MCP stdio, épinglez la version publiée du pont plutôt que d'utiliser un package non contraint :
npx -y [email protected] --host 127.0.0.1 --port 9009
Enregistrez cette commande uniquement dans le client MCP choisi par l'utilisateur. Le pont n'est pas prêt tant que Binary Ninja n'est pas en cours d'exécution, qu'un binaire n'est pas ouvert et que le point de terminaison du plugin localhost ne répond pas.
Flux de travail d'analyse
- Énumérez les binaires ouverts et sélectionnez la vue souhaitée.
- Capturez l'état du binaire, les points d'entrée, les segments, les importations, les exportations et les chaînes représentatives.
- Suivez les sites d'appel et les références croisées avant d'interpréter une fonction isolément.
- Utilisez HLIL pour une logique lisible, MLIL SSA pour le flux de données, et LLIL/désassemblage lorsque le levage perd le comportement au niveau des instructions.
- Appliquez les noms, commentaires et types de manière incrémentale ; conservez les adresses originales comme preuve.
- Traitez les correctifs octets, les modifications de prototypes et les écritures de fichiers sauvegardés comme des mutations. Effectuez-les uniquement sur demande et préservez l'artefact original.
- Vérifiez les conclusions à fort impact avec une deuxième source de preuve ou un autre désassembleur.
Les familles de capacités MCP utiles incluent la sélection binaire/vue, list_imports, list_exports, list_strings, decompile_function, get_il, appelants/appelés, références croisées, types, commentaires, renoms et correction de bytes. Découvrez la liste d'outils en direct au lieu de supposer que chaque fonction en amont est présente.
Sortie
Rapportez des adresses concrètes, les noms de fonctions, le niveau IL, les chaînes/importations justificatives, le niveau de confiance et les étapes de reproduction. Maintenez la chaîne Preuve → Conclusion → Chemin utilisée par le reste du dépôt.