# ghidra-headless

Скилл запускает headless-анализатор Ghidra и вытаскивает из бинаря функции, строки, символы и граф вызовов. Пригодится, когда исходников нет, а разобрать надо.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 507 установок · ★ 520
- Автор: trailofbits
- Лицензия: CC-BY-SA-4.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/trailofbits/skills-curated/tree/HEAD/plugins/ghidra-headless/skills/ghidra-headless/SKILL.md
- Обновлён: 2026-07-14
- HTML: https://affpapa.org/nevibecode/skills/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-байткода скилл не подходит — там свои инструменты.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills-curated --skill ghidra-headless -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/ghidra-headless/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/ghidra-headless/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills-curated --skill ghidra-headless -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/ghidra-headless/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills-curated --skill ghidra-headless -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/ghidra-headless/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install trailofbits/skills-curated ghidra-headless
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/ghidra-headless/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills-curated --skill ghidra-headless -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/trailofbits/skills-curated --path plugins/ghidra-headless/skills/ghidra-headless
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/ghidra-headless/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add trailofbits/skills-curated --skill ghidra-headless -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/trailofbits/skills-curated/tree/HEAD/plugins/ghidra-headless/skills/ghidra-headless/SKILL.md

## Когда брать
- декомпилировать бинарь в C-псевдокод для ревью
- вытащить строки и символы из исполняемого файла
- построить граф вызовов и понять поток управления
- разобрать прошивку без доступа к исходникам
- прогнать пачку бинарей и сравнить результаты

## Примеры запросов агенту
- проанализируй ./unknown_binary через ghidra-headless и покажи сводку
- декомпилируй firmware.bin, архитектура ARM:LE:32:v7
- найди в декомпилированном коде вызовы strcpy и sprintf

## Похожие
- [ghidra](https://affpapa.org/nevibecode/skills/ghidra.md) — скилл · 652 установки
- [analyzing-golang-malware-with-ghidra](https://affpapa.org/nevibecode/skills/analyzing-golang-malware-with-ghidra.md) — скилл · 441 установка
- [binary-analysis-patterns](https://affpapa.org/nevibecode/skills/binary-analysis-patterns.md) — скилл · 10900 установок
- [reverse-engineering](https://affpapa.org/nevibecode/skills/mohitmishra786-reverse-engineering.md) — скилл · 350 установок
- [code-obfuscation-deobfuscation](https://affpapa.org/nevibecode/skills/code-obfuscation-deobfuscation.md) — скилл · 4000 установок
- [reverse-engineer](https://affpapa.org/nevibecode/skills/reverse-engineer.md) — скилл · 892 установки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
