Ingeniería inversa con Binary Ninja
Utiliza Binary Ninja cuando el usuario lo seleccione explícitamente, cuando sus IL ayudan materialmente al análisis de flujo de datos, o cuando los resultados de IDA/Ghidra/radare2 necesiten una verificación independiente.
Inicio seguro
- Confirma que el alcance del caso del repositorio esté listo antes de actuar sobre un objetivo.
- Revisa
skills/tool-index.mdparabinaryninja; Binary Ninja es software comercial y debe instalarse manualmente con una licencia válida de Vector 35. - Trabaja sobre una copia al aplicar parches o guardar cambios en la base de datos.
- Registra importaciones/exportaciones, puntos de entrada, arquitectura y hash del archivo antes de promover hallazgos.
Elige la integración
- GUI o API de Python: preferida cuando Binary Ninja ya está abierto o el usuario desea análisis interactivo directo.
- Puente comunitario MCP: úsalo solo cuando se solicite explícitamente y después de revisar el límite del plugin de terceros. Mantén el listener HTTP de Binary Ninja en
127.0.0.1:9009; no habilites la exposición de red por defecto. - Alternativa: usa
ghidra-reverse,ida-reverseoradare2cuando Binary Ninja no esté disponible o su licencia/API no pueda abrir el objetivo.
La integración comunitaria revisada es fosdickio/binary_ninja_mcp, GPL-3.0, metadatos de plugin versión 1.1.0, build mínimo de Binary Ninja 4000. El repositorio no es un componente oficial de Vector 35. Esta habilidad fue verificada contra el commit 8c5134ee46e2bf44f9a4d846bd971c3e39b3e306 el 2026-09-03.
Instala el lado de Binary Ninja a través de su Administrador de Plugins o desde la fuente revisada. Para el puente MCP stdio, fija la versión publicada del puente en lugar de usar un paquete sin restricciones:
npx -y [email protected] --host 127.0.0.1 --port 9009
Registra ese comando solo en el cliente MCP que seleccionó el usuario. El puente no está listo hasta que Binary Ninja esté en ejecución, un binario esté abierto y el endpoint del plugin localhost responda.
Flujo de trabajo de análisis
- Enumera los binarios abiertos y selecciona la vista deseada.
- Captura el estado del binario, puntos de entrada, segmentos, importaciones, exportaciones y cadenas representativas.
- Sigue los sitios de llamada y las referencias cruzadas antes de interpretar una función de forma aislada.
- Usa HLIL para lógica legible, MLIL SSA para flujo de datos y LLIL/desensamblado cuando la elevación pierda comportamiento a nivel de instrucción.
- Aplica nombres, comentarios y tipos de forma incremental; mantén las direcciones originales como evidencia.
- Trata los parches de bytes, cambios de prototipos y escrituras de archivos guardados como mutaciones. Realízalos solo cuando se soliciten y conserva el artefacto original.
- Verifica conclusiones de alto impacto con una segunda fuente de evidencia u otro desensamblador.
Las familias de capacidades MCP útiles incluyen: selección de vista/binario, list_imports, list_exports, list_strings, decompile_function, get_il, llamantes/llamados, referencias cruzadas, tipos, comentarios, renombres y parches de bytes. Descubre la lista de herramientas en vivo en lugar de asumir que cada función upstream está presente.
Salida
Informa direcciones concretas, nombres de función, nivel de IL, cadenas/importaciones de apoyo, confianza y pasos de reproducción. Mantén la cadena Evidencia → Hallazgo → Ruta que utiliza el resto del repositorio.