ghidra-headless — скилл для Claude Code: реверс бинарей без GUI
Скилл запускает headless-анализатор Ghidra и вытаскивает из бинаря функции, строки, символы и граф вызовов. Пригодится, когда исходников нет, а разобрать надо.
npx skills add trailofbits/skills-curated --skill ghidra-headless -a claude-codeЧто делает ghidra-headless
Скилл оборачивает analyzeHeadless из Ghidra: импортирует бинарь, прогоняет автоанализ, декомпилирует функции в C и складывает результат в файлы. Внутри — скрипты-обёртки и набор Java-экспортёров. ExportAll.java за один прогон отдаёт сводку, декомпиляцию, список функций, строки и функции, похожие на security-паттерны. Отдельно есть ExportCalls.java для графа вызовов и ExportSymbols.java для импортов, экспортов и внутренних символов.
Запуск идёт через {baseDir}/scripts/ghidra-analyze.sh с флагами: -o задаёт папку вывода, -s — пост-скрипт, -p — процессор, --timeout ограничивает время на файл, --no-analysis пропускает автоанализ ради скорости. Для прошивок архитектуру указывают явно, например -p "ARM:LE:32:v7". Скрипт сам ищет Ghidra в типовых путях, а для нестандартной установки читает GHIDRA_HOME.
Заранее нужны сама Ghidra и Java (OpenJDK 17+). Это повод проверить окружение до первого запуска: без них обёртка просто не стартует. Декомпиляция не всегда совпадает с оригиналом, так что вывод стоит сверять с дизассемблером. Для .NET и Java-байткода скилл не подходит — там свои инструменты.
Какие задачи решает
- декомпилировать бинарь в C-псевдокод для ревью
- вытащить строки и символы из исполняемого файла
- построить граф вызовов и понять поток управления
- разобрать прошивку без доступа к исходникам
- прогнать пачку бинарей и сравнить результаты
Примеры запросов агенту
- проанализируй ./unknown_binary через ghidra-headless и покажи сводку
- декомпилируй firmware.bin, архитектура ARM:LE:32:v7
- найди в декомпилированном коде вызовы strcpy и sprintf
Как установить ghidra-headless
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills-curated --skill ghidra-headless -a claude-code2Вручную: положить файлы
~/.claude/skills/ghidra-headless/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/ghidra-headless/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills-curated --skill ghidra-headless -a codex2Вручную: положить файлы
.agents/skills/ghidra-headless/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills-curated --skill ghidra-headless -a cursor2Вручную: положить файлы
.cursor/skills/ghidra-headless/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills-curated ghidra-headless2Вручную: положить файлы
.github/skills/ghidra-headless/SKILL.md1Через Skills CLI (Vercel)
npx skills add trailofbits/skills-curated --skill ghidra-headless -a gemini-cli2Командой платформы
gemini skills install https://github.com/trailofbits/skills-curated --path plugins/ghidra-headless/skills/ghidra-headlessВручную: положить файлы
.devin/skills/ghidra-headless/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add trailofbits/skills-curated --skill ghidra-headless -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о ghidra-headless
Как установить ghidra-headless в Claude?
Выполните npx skills add trailofbits/skills-curated --skill ghidra-headless -a claude-code. После этого файл скилла появится по пути ~/.claude/skills/ghidra-headless/SKILL.md.
Что делает ghidra-headless?
Запускает headless-анализатор Ghidra и экспортирует из бинаря декомпилированный C, функции, строки, символы и граф вызовов. Всё это без графического интерфейса.
Что нужно для работы скилла?
Установленная Ghidra и Java (OpenJDK 17+). Если Ghidra стоит в нестандартном месте, задайте переменную GHIDRA_HOME.