
cerberus-re — это локальная рабочая среда для реверс-инжиниринга, ориентированная на Apple и предназначенная для построения повторяемого трёхглавого цикла статического/динамического анализа и инструментирования на базе Ghidra, LLDB и Frida.
cerberus-re — это локальное рабочее место для обратной разработки, ориентированное на Apple, предназначенное для построения повторяемого трехголового цикла статического/динамического/инструментального анализа с использованием Ghidra, LLDB и Frida.
Оно разработано для аналитиков и кодирующих агентов, которым нужны долговечные артефакты, а не только терминальные заметки:
Присоединение к выполняемому процессу и запуск целевого приложения всегда явны. Инструментарий отдает предпочтение собственным процессам, валидации без присоединения, созданным артефактам и ограниченным зондам, чьи предположения записываются вместе с доказательствами.
Публичное рабочее место — это общая инфраструктура анализа бинарных файлов Apple: импорт и экспорт Ghidra, корреляция LLDB/Frida, доказательства Mach-O/ObjC/Swift/XPC и переносимые отчеты. Это не проектно-специфичный исследовательский журнал и не общая система памяти для длительных агентов. Доменно-специфичные исследовательские рабочие процессы должны находиться в частных наложениях или долговечных артефактах выполнения, а общее долгосрочное состояние — в long-run-agent.
Используйте Cerberus RE вместе с long-run-agent для значительных работ по обратной разработке. Cerberus RE предоставляет статическое, динамическое и инструментальное рабочее место; long-run-agent сохраняет состояние миссии, утверждения, артефакты, сбои, трения и следующие действия, чтобы более длительные исследования оставались проверяемыми и возобновляемыми. Cerberus RE может работать самостоятельно для ограниченных задач, но для эталонных тестов и рабочих процессов выпуска предпочтительнее комбинированная конфигурация cerberus-re + long-run-agent.
Для свежего клонирования начните с установщика зависимостей в режиме пробного запуска:
python3 scripts/install_dependencies.py
python3 scripts/install_dependencies.py --execute
source .venv/bin/activate
cerberus-re bootstrap
Установщик создает локальную виртуальную среду, устанавливает Cerberus RE и добавляет инструментарий Frida на Python. На macOS с Homebrew он может установить Ghidra/Java и Node. На Linux и Windows он выводит команды для конкретного пакетного менеджера для просмотра вместо автоматического выполнения системных установок.
Если ваши системные зависимости уже присутствуют:
pip install -e .
cerberus-re bootstrap
Необязательная установка навыков:
cerberus-re install --host codex
cerberus-re install --host claude
cerberus-re install --host both
Пути по умолчанию можно переопределить с помощью переменных среды, описанных в 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
Если export xpc-surface сообщает о нулевых количествах, проверьте warnings и missing_input_count перед использованием этого как доказательство отсутствия. Используйте --bundle-dir или явные пути к JSON экспорта при анализе пакета Apple, хранящегося вне каталога экспорта по умолчанию.
Используйте python3 -m cerberus_re_skill или cerberus-re для автоматизации. Общее долгосрочное состояние выполнения, файлы управления, долговременная память проекта и оркестровка завершения агента должны находиться в long-run-agent, а не в этом рабочем месте.
Публичный каркас бенчмарков определяет воспроизводимую матрицу агент/задача без включения результатов бенчмарков:
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
Используйте benchmarks/agent_benchmark.v1.json в качестве машиночитаемого источника истины. Результат набора (bundle) становится результатом только после того, как реальный исполнитель запишет долговременные команды, утверждения, артефакты, сбои и метрики.
SKILL.md: процедура работы агента.cerberus_re_skill/: Python CLI и построители отчетов.scripts/: установщик, вспомогательные скрипты, библиотеки оболочки и Java-скрипты Ghidra.bridge-extension/: исходный код bridge для Ghidra.references/: публичные ссылки на команды и артефакты.benchmarks/: определение бенчмарков, каркас набора результатов и будущие формы публичных результатов.tests/: дымовые и регрессионные тесты.Перед публикацией этапа:
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. См. LICENSE.