
cerberus-re é um workbench local de engenharia reversa focado em Apple para construir um loop repetível de três cabeças (estática, dinâmica e instrumentação) em torno de Ghidra, LLDB e Frida.
cerberus-re é uma bancada de trabalho local focada em engenharia reversa para Apple, projetada para construir um loop repetível de três cabeças (estático/dinâmico/instrumentação) em torno de Ghidra, LLDB e Frida.
É desenvolvida para analistas e agentes de codificação que precisam de artefatos duráveis, em vez de anotações exclusivamente no terminal:
A anexação em tempo de execução e a invocação do alvo são sempre explícitas. As ferramentas favorecem processos próprios, validação de não anexação, artefatos gerados e sondagens limitadas cujas suposições são registradas juntamente com as evidências.
A bancada pública é infraestrutura geral de análise binária para Apple: importações e exportações do Ghidra, correlação LLDB/Frida, evidências Mach-O/ObjC/Swift/XPC e relatórios portáteis. Não é um registro de pesquisa específico de um projeto nem um sistema genérico de memória de agente de longa duração. Fluxos de trabalho de pesquisa específicos de domínio devem residir em camadas privadas ou artefatos de execução duráveis, enquanto estados genéricos de longa execução pertencem ao long-run-agent.
Use o Cerberus RE com o long-run-agent para trabalhos substanciais de engenharia reversa. O Cerberus RE fornece a bancada estática, dinâmica e de instrumentação; o long-run-agent preserva o estado da missão, reivindicações, artefatos, falhas, atritos e próximas ações, para que investigações mais longas permaneçam auditáveis e retomáveis. O Cerberus RE pode ser executado sozinho para tarefas limitadas, mas os fluxos de trabalho de benchmark e liberação devem preferir a configuração combinada cerberus-re + long-run-agent.
Para um checkout novo, comece com o instalador de dependências no modo dry-run:
python3 scripts/install_dependencies.py
python3 scripts/install_dependencies.py --execute
source .venv/bin/activate
cerberus-re bootstrap
O instalador cria um ambiente virtual local, instala o Cerberus RE e adiciona as ferramentas Python do Frida. No macOS com Homebrew, pode instalar Ghidra/Java e Node. No Linux e Windows, imprime comandos específicos do gerenciador de pacotes para revisão, em vez de executar instalações do sistema automaticamente.
Se suas dependências de sistema já estiverem presentes:
pip install -e .
cerberus-re bootstrap
Instalação opcional de habilidades:
cerberus-re install --host codex
cerberus-re install --host claude
cerberus-re install --host both
Os caminhos padrão podem ser substituídos por variáveis de ambiente documentadas em templates/config.env.example.
cerberus-re doctor
cerberus-re bootstrap
cerberus-re import analyze /path/to/Binary my_project
cerberus-re export apple-bundle my_project BinaryName
cerberus-re bridge arm my_project BinaryName
cerberus-re bridge call /functions/search '{"query":"interestingName"}'
cerberus-re validate lldb-trace my_project BinaryName --launch-cmd /path/to/host --symbols '-[Owner selector:]'
cerberus-re validate lldb-trace my_project BinaryName --launch-cmd /path/to/host --symbols FirstExport --symbols SecondExport
cerberus-re frida validate-scripts
cerberus-re frida recheck-attach --target /path/to/owned-host --symbol '-[Owner selector:]' --allow-runtime
cerberus-re export runtime-enrich my_project BinaryName /path/to/runtime_hits.json
cerberus-re export xpc-surface my_project BinaryName
cerberus-re export xpc-graph my_project:BinaryName other_project:OtherBinary
cerberus-re export function-dossier my_project BinaryName --function '-[Owner selector:]'
cerberus-re export triage-bundle my_project BinaryName --top-candidates 25
cerberus-re polish release --mode quick --strict-command-surface
Se o export xpc-surface relatar contagens zero, inspecione warnings e missing_input_count antes de usar isso como evidência de ausência. Passe --bundle-dir ou caminhos explícitos de exportação JSON ao analisar um bundle da Apple armazenado fora do diretório de exportação padrão.
Use python3 -m cerberus_re_skill ou cerberus-re para automação. Estado de execução genérico de longa duração, arquivos de direção, memória de projeto durável e orquestração de encerramento de agente pertencem ao long-run-agent, não a esta bancada.
O scaffold público de benchmark define uma matriz de agente/tarefa reproduzível sem enviar resultados de benchmark:
python3 scripts/agent_benchmark.py list
python3 scripts/agent_benchmark.py scaffold --runner codex --configuration cerberus-re-long-run-agent --output benchmarks/results/example/codex/cerberus-re-long-run-agent
python3 scripts/agent_benchmark.py validate --bundle benchmarks/results/example/codex/cerberus-re-long-run-agent
Use benchmarks/agent_benchmark.v1.json como a fonte de verdade legível por máquina. Um pacote scaffolded só é um resultado após um executor real registrar comandos, reivindicações, artefatos, falhas e métricas duráveis.
SKILL.md: procedimento operacional voltado para agentes.cerberus_re_skill/: CLI Python e construtores de relatórios.scripts/: instalador, scripts auxiliares, bibliotecas de shell source e scripts Java do Ghidra.bridge-extension/: código-fonte da bridge do Ghidra.references/: referências públicas de comandos e artefatos.benchmarks/: definição de benchmark, scaffold de pacotes de resultados e formatos de resultados públicos futuros.tests/: testes smoke e de regressão.Antes de publicar um marco:
python3 -m unittest discover -s tests
python3 -m compileall cerberus_re_skill scripts tests
python3 -m cerberus_re_skill polish release --mode quick --strict-command-surface
python3 -m cerberus_re_skill bridge audit
git diff --check
Apache-2.0. Veja LICENSE.