
cerberus-re è un ambiente di lavoro locale per reverse engineering incentrato su Apple, progettato per costruire un ciclo ripetibile a tre teste (statico/dinamico/strumentazione) attorno a Ghidra, LLDB e Frida.
cerberus-re è un workbench locale per il reverse engineering incentrato su Apple, progettato per costruire un ciclo ripetibile a tre teste (statico/dinamico/strumentazione) attorno a Ghidra, LLDB e Frida.
È pensato per analisti e agenti di codifica che necessitano di artefatti durevoli invece di semplici note da terminale:
L'attacco runtime e l'invocazione del target sono sempre espliciti. Gli strumenti prediligono processi posseduti, validazione senza attacco, artefatti generati e probe delimitati le cui ipotesi sono registrate insieme all'evidenza.
Il workbench pubblico è un'infrastruttura generale per l'analisi di binari Apple: importazioni ed esportazioni Ghidra, correlazione LLDB/Frida, evidenze Mach-O/ObjC/Swift/XPC e report portabili. Non è un registro di ricerca specifico di un progetto né un sistema di memoria generico per agenti a lunga esecuzione. I flussi di lavoro di ricerca specifici del dominio dovrebbero risiedere in overlay privati o artefatti di esecuzione durevoli, mentre lo stato generico a lungo termine appartiene a long-run-agent.
Utilizza Cerberus RE con long-run-agent per lavori di reverse engineering sostanziali. Cerberus RE fornisce il workbench statico, dinamico e di strumentazione; long-run-agent preserva lo stato della missione, rivendicazioni, artefatti, fallimenti, attriti e azioni successive in modo che le indagini più lunghe rimangano verificabili e riprendibili. Cerberus RE può funzionare da solo per compiti delimitati, ma i flussi di lavoro di benchmark e rilascio dovrebbero preferire la configurazione combinata cerberus-re + long-run-agent.
Per un checkout pulito, inizia con l'installatore delle dipendenze in modalità dry-run:
python3 scripts/install_dependencies.py
python3 scripts/install_dependencies.py --execute
source .venv/bin/activate
cerberus-re bootstrap
L'installatore crea un ambiente virtuale locale, installa Cerberus RE e aggiunge il tooling Python di Frida. Su macOS con Homebrew può installare Ghidra/Java e Node. Su Linux e Windows stampa comandi specifici del gestore di pacchetti da rivedere invece di eseguire installazioni di sistema automaticamente.
Se le dipendenze di sistema sono già presenti:
pip install -e .
cerberus-re bootstrap
Installazione opzionale delle skill:
cerberus-re install --host codex
cerberus-re install --host claude
cerberus-re install --host both
I percorsi predefiniti possono essere sovrascritti con variabili d'ambiente documentate in 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 export xpc-surface riporta conteggi pari a zero, ispeziona warnings e missing_input_count prima di usarlo come evidenza di assenza. Passa --bundle-dir o percorsi JSON di esportazione espliciti quando analizzi un bundle Apple archiviato al di fuori della directory di esportazione predefinita.
Usa python3 -m cerberus_re_skill o cerberus-re per l'automazione. Lo stato di esecuzione generico a lungo termine, i file di guida, la memoria di progetto durevole e l'orchestrazione di chiusura dell'agente appartengono a long-run-agent, non a questo workbench.
L'impalcatura pubblica dei benchmark definisce una matrice agente/compito riproducibile senza spedire i risultati dei 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
Usa benchmarks/agent_benchmark.v1.json come fonte di verità leggibile da macchina. Un bundle impalcato è solo un risultato dopo che un runner reale ha registrato comandi, rivendicazioni, artefatti, fallimenti e metriche durevoli.
SKILL.md: procedura operativa per l'agente.cerberus_re_skill/: CLI Python e costruttori di report.scripts/: installer, script helper, librerie shell con sorgente e script Java Ghidra.bridge-extension/: sorgente del bridge Ghidra.references/: riferimenti pubblici a comandi e artefatti.benchmarks/: definizione del benchmark, impalcatura del bundle dei risultati e forme future dei risultati pubblici.tests/: test fumogeni e di regressione.Prima di pubblicare una milestone:
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. Vedi LICENSE.