
cerberus-re es un banco de trabajo local de ingeniería inversa centrado en Apple para construir un bucle repetible de tres cabezas estático/dinámico/instrumentación alrededor de Ghidra, LLDB y Frida.
cerberus-re es un banco de trabajo local de ingeniería inversa centrado en Apple, diseñado para construir un bucle repetible de tres cabezas (estático/dinámico/instrumentación) alrededor de Ghidra, LLDB y Frida.
Está pensado para analistas y agentes de codificación que necesitan artefactos duraderos en lugar de notas solo de terminal:
La conexión en tiempo de ejecución y la invocación del objetivo siempre son explícitas. La herramienta favorece procesos propios, validación de no conexión, artefactos generados y sondas acotadas cuyas suposiciones se registran junto con la evidencia.
El banco de trabajo público es infraestructura general de análisis de binarios de Apple: importaciones y exportaciones de Ghidra, correlación LLDB/Frida, evidencia Mach-O/ObjC/Swift/XPC e informes portátiles. No es un registro de investigación específico de un proyecto ni un sistema de memoria de agente genérico y de larga ejecución. Los flujos de trabajo de investigación específicos de un dominio deben residir en superposiciones privadas o artefactos de ejecución duraderos, mientras que el estado genérico de larga ejecución pertenece a long-run-agent.
Use Cerberus RE con long-run-agent para trabajos sustanciales de ingeniería inversa. Cerberus RE proporciona el banco de trabajo estático, dinámico y de instrumentación; long-run-agent conserva el estado de la misión, las afirmaciones, los artefactos, los fallos, la fricción y las próximas acciones para que las investigaciones más largas sigan siendo auditables y reanudables. Cerberus RE puede ejecutarse por sí solo para tareas acotadas, pero los flujos de trabajo de benchmark y lanzamiento deben preferir la configuración combinada cerberus-re + long-run-agent.
Para una copia nueva, comience con el instalador de dependencias en modo simulado:
python3 scripts/install_dependencies.py
python3 scripts/install_dependencies.py --execute
source .venv/bin/activate
cerberus-re bootstrap
El instalador crea un entorno virtual local, instala Cerberus RE y agrega herramientas Python de Frida. En macOS con Homebrew puede instalar Ghidra/Java y Node. En Linux y Windows imprime comandos específicos del gestor de paquetes para revisión en lugar de ejecutar instalaciones del sistema automáticamente.
Si sus dependencias del sistema ya están presentes:
pip install -e .
cerberus-re bootstrap
Instalación opcional de habilidades:
cerberus-re install --host codex
cerberus-re install --host claude
cerberus-re install --host both
Las rutas predeterminadas se pueden anular con variables de entorno documentadas en templates/config.env.example.
cerberus-re doctor
cerberus-re bootstrap
cerberus-re import analyze /ruta/a/Binario mi_proyecto
cerberus-re export apple-bundle mi_proyecto NombreBinario
cerberus-re bridge arm mi_proyecto NombreBinario
cerberus-re bridge call /functions/search '{"query":"interestingName"}'
cerberus-re validate lldb-trace mi_proyecto NombreBinario --launch-cmd /ruta/a/host --symbols '-[Owner selector:]'
cerberus-re validate lldb-trace mi_proyecto NombreBinario --launch-cmd /ruta/a/host --symbols FirstExport --symbols SecondExport
cerberus-re frida validate-scripts
cerberus-re frida recheck-attach --target /ruta/a/host-propio --symbol '-[Owner selector:]' --allow-runtime
cerberus-re export runtime-enrich mi_proyecto NombreBinario /ruta/a/runtime_hits.json
cerberus-re export xpc-surface mi_proyecto NombreBinario
cerberus-re export xpc-graph mi_proyecto:NombreBinario otro_proyecto:OtroBinario
cerberus-re export function-dossier mi_proyecto NombreBinario --function '-[Owner selector:]'
cerberus-re export triage-bundle mi_proyecto NombreBinario --top-candidates 25
cerberus-re polish release --mode quick --strict-command-surface
Si export xpc-surface reporta cero conteos, inspeccione warnings y missing_input_count antes de usar eso como evidencia de ausencia. Pase --bundle-dir o rutas JSON de exportación explícitas al analizar un bundle de Apple almacenado fuera del directorio de exportación predeterminado.
Use python3 -m cerberus_re_skill o cerberus-re para automatización. El estado de ejecución genérico de larga duración, los archivos de dirección, la memoria de proyecto duradera y la orquestación de cierre de agente pertenecen a long-run-agent, no a este banco de trabajo.
El andamio de benchmark público define una matriz agente/tarea reproducible sin incluir 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 la fuente de verdad legible por máquina. Un bundle andamiado solo es un resultado después de que un runner real registre comandos, afirmaciones, artefactos, fallos y métricas duraderos.
SKILL.md: procedimiento operativo para el agente.cerberus_re_skill/: CLI Python y constructores de informes.scripts/: instalador, scripts auxiliares, bibliotecas shell de origen y scripts Java de Ghidra.bridge-extension/: código fuente del puente Ghidra.references/: referencias públicas de comandos y artefactos.benchmarks/: definición de benchmark, andamio de bundle de resultados y formas de resultados públicos futuros.tests/: pruebas de humo y regresión.Antes de publicar un hito:
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. Ver LICENSE.