
cerberus-re est un atelier de rétro-ingénierie local axé sur Apple pour construire une boucle reproductible à trois têtes (statique/dynamique/instrumentation) autour de Ghidra, LLDB et Frida.
cerberus-re est un atelier local de rétro-ingénierie axé sur Apple pour construire une boucle répétable à trois têtes (statique/dynamique/instrumentation) autour de Ghidra, LLDB et Frida.
Il est conçu pour les analystes et les agents de codage qui ont besoin d'artefacts durables plutôt que de simples notes terminal :
L'attachement à l'exécution et l'invocation de cible sont toujours explicites. L'outillage privilégie les processus possédés, la validation sans attachement, les artefacts générés et les sondes bornées dont les hypothèses sont enregistrées aux côtés des preuves.
L'atelier public est une infrastructure générale d'analyse de binaires Apple : importations et exportations Ghidra, corrélation LLDB/Frida, preuves Mach-O/ObjC/Swift/XPC et rapports portables. Ce n'est pas un journal de recherche spécifique à un projet ni un système de mémoire générique pour agent de longue durée. Les workflows de recherche spécifiques à un domaine doivent résider dans des couvertures privées ou des artefacts d'exécution durables, tandis que l'état générique de longue durée appartient à long-run-agent.
Utilisez Cerberus RE avec long-run-agent pour les travaux de rétro-ingénierie substantiels. Cerberus RE fournit l'atelier statique, dynamique et d'instrumentation ; long-run-agent préserve l'état de la mission, les revendications, les artefacts, les échecs, les frictions et les actions suivantes afin que les enquêtes plus longues restent audibles et reprenables. Cerberus RE peut fonctionner seul pour des tâches bornées, mais les workflows de benchmark et de publication devraient préférer la configuration combinée cerberus-re + long-run-agent.
Pour un nouveau checkout, commencez par l'installateur de dépendances en mode dry-run :
python3 scripts/install_dependencies.py
python3 scripts/install_dependencies.py --execute
source .venv/bin/activate
cerberus-re bootstrap
L'installateur crée un environnement virtuel local, installe Cerberus RE et ajoute l'outillage Python Frida. Sur macOS avec Homebrew, il peut installer Ghidra/Java et Node. Sur Linux et Windows, il imprime des commandes spécifiques au gestionnaire de paquets pour examen au lieu d'exécuter automatiquement les installations système.
Si vos dépendances système sont déjà présentes :
pip install -e .
cerberus-re bootstrap
Installation optionnelle des compétences :
cerberus-re install --host codex
cerberus-re install --host claude
cerberus-re install --host both
Les chemins par défaut peuvent être remplacés par des variables d'environnement documentées dans 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
Si export xpc-surface signale des comptes nuls, inspectez warnings et missing_input_count avant d'utiliser cela comme preuve d'absence. Passez --bundle-dir ou des chemins JSON d'exportation explicites lors de l'analyse d'un bundle Apple stocké en dehors du répertoire d'exportation par défaut.
Utilisez python3 -m cerberus_re_skill ou cerberus-re pour l'automatisation. L'état d'exécution générique de longue durée, les fichiers de pilotage, la mémoire de projet durable et l'orchestration de clôture d'agent appartiennent à long-run-agent, pas à cet atelier.
L'échafaudage de benchmarks public définit une matrice agent/tâche reproductible sans expédier les résultats des benchmarks :
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
Utilisez benchmarks/agent_benchmark.v1.json comme source de vérité lisible par machine. Un bundle échafaudé n'est un résultat qu'après qu'un véritable exécutant enregistre des commandes, revendications, artefacts, échecs et métriques durables.
SKILL.md : procédure opératoire destinée à l'agent.cerberus_re_skill/ : CLI Python et constructeurs de rapports.scripts/ : installateur, scripts d'assistance, bibliothèques shell sourcées et scripts Java Ghidra.bridge-extension/ : source du pont Ghidra.references/ : références publiques des commandes et artefacts.benchmarks/ : définition des benchmarks, échafaudage de bundle de résultats et futurs formats de résultats publics.tests/ : tests de fumée et de régression.Avant de publier une étape importante :
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. Voir LICENSE.