Engenharia reversa com Binary Ninja
Use o Binary Ninja quando o usuário o selecionar explicitamente, quando suas ILs ajudarem materialmente a análise de fluxo de dados, ou quando os resultados do IDA/Ghidra/radare2 precisarem de uma verificação cruzada independente.
Iniciar com segurança
- Confirme que o escopo do caso do repositório está pronto antes de agir sobre um alvo.
- Verifique
skills/tool-index.mdpela presença debinaryninja; o Binary Ninja é um software comercial e deve ser instalado manualmente com uma licença válida da Vector 35. - Trabalhe em uma cópia ao aplicar patches ou salvar alterações no banco de dados.
- Registre imports/exports, pontos de entrada, arquitetura e hash do arquivo antes de promover descobertas.
Escolha a integração
- GUI ou API Python: preferido quando o Binary Ninja já está aberto ou o usuário deseja análise interativa direta.
- Bridge MCP comunitária: use apenas quando explicitamente solicitado e após revisar o limite do plugin de terceiros. Mantenha o listener HTTP do Binary Ninja em
127.0.0.1:9009; não habilite exposição de rede por padrão. - Fallback: use
ghidra-reverse,ida-reverseouradare2quando o Binary Ninja estiver indisponível ou sua licença/API não puder abrir o alvo.
A integração comunitária revisada é fosdickio/binary_ninja_mcp, GPL-3.0, versão de metadados do plugin 1.1.0, build mínimo do Binary Ninja 4000. O repositório não é um componente oficial da Vector 35. Esta skill foi verificada contra o commit 8c5134ee46e2bf44f9a4d846bd971c3e39b3e306 em 2026-09-03.
Instale o lado do Binary Ninja através do Gerenciador de Plugins ou a partir da fonte revisada. Para a bridge MCP stdio, fixe a versão publicada da bridge em vez de usar um pacote sem limites:
npx -y [email protected] --host 127.0.0.1 --port 9009
Registre esse comando apenas no cliente MCP selecionado pelo usuário. A bridge não estará pronta até que o Binary Ninja esteja em execução, um binário esteja aberto e o endpoint do plugin localhost responda.
Fluxo de trabalho de análise
- Enumere binários abertos e selecione a visão pretendida.
- Capture o status do binário, pontos de entrada, segmentos, imports, exports e strings representativas.
- Siga os locais de chamada e referências cruzadas antes de interpretar uma função isoladamente.
- Use HLIL para lógica legível, MLIL SSA para fluxo de dados, e LLIL/desmontagem quando a elevação perder o comportamento em nível de instrução.
- Aplique nomes, comentários e tipos incrementalmente; mantenha os endereços originais como evidência.
- Trate patches de bytes, alterações de protótipo e gravações de arquivo como mutações. Execute-os apenas quando solicitado e preserve o artefato original.
- Verifique conclusões de alto impacto com uma segunda fonte de evidência ou outro desmontador.
Famílias úteis de capacidade MCP incluem seleção de binário/visão, list_imports, list_exports, list_strings, decompile_function, get_il, chamadores/callees, referências cruzadas, tipos, comentários, renomeações e patches de bytes. Descubra a lista de ferramentas disponíveis ao vivo, em vez de assumir que toda função upstream está presente.
Saída
Relate endereços concretos, nomes de funções, nível de IL, strings/imports suportados, confiança e passos de reprodução. Mantenha a cadeia Evidência → Descoberta → Caminho usada pelo restante do repositório.