Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ghidra — Ghidra — это фреймворк для обратной разработки программного обеспечения (SRE). | Kitploit
Инструменты/GitHubGitHub/nationalsecurityagency/ghidra
Безопасность AndroidБезопасность встроенных системСтатический анализДинамический анализ (песочница)Фреймворки для эксплойтовКриминалистика памятиАнализ уязвимостейАнализ КодаПентестинг мобильных приложенийОбратная инженерияСкриптинг и автоматизация
71.1k7.8k1191 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Отладчики
Анализ вредоносных программ
CTF
Мобильная безопасность
Анализ Бинарных Файлов
Обучение и Образование
Обратная Разработка с Помощью ИИ
Анализ Прошивок
Эксплуатация Бинарных Файлов
Топ в Обратная Разработка с Помощью ИИ №5
Топ в Безопасность Android №15
Топ в Анализ Бинарных Файлов №1
Топ в Эксплуатация Бинарных Файлов №8
Топ в Анализ Кода №5
Топ в CTF №13
Топ в Отладчики №8
Топ в Динамический анализ (песочница) №18
Топ в Безопасность встроенных систем №8
Топ в Анализ Прошивок №8
Топ в Анализ вредоносных программ №7
Топ в Криминалистика памяти №18
Топ в Пентестинг мобильных приложений №18
Топ в Мобильная безопасность №18
Топ в Обратная инженерия №1
Топ в Статический анализ №1
GitHubnationalsecurityagency/ghidra

ghidra

Ghidra — это фреймворк для обратной разработки программного обеспечения (SRE).

РепозиторийСайт
Поделиться
# Dockerized Ghidra

## Сборка

Из корневой директории вашего релиза Ghidra выполните следующую команду:

```
./docker/build-docker-image.sh
```

Будет собран docker-образ ghidra с тегом, соответствующим версии релиза Ghidra.

## Переменная окружения MODE

Docker-контейнер Ghidra поддерживает следующие режимы (`MODE`) выполнения:
- gui
- headless
- ghidra-server
- bsim
- bsim-server
- pyghidra

Переменная окружения `MODE` указывает, какую точку входа Ghidra следует выполнить.

Скрипт `entrypoint.sh` выполняется при запуске контейнера.

## Настройка контейнера

Настройка контейнера выполняется так же, как и любого другого docker-контейнера.
Монтируются тома, задаются переменные окружения, пробрасываются порты из контейнера на хост и т.д.
Шаги настройки сильно зависят от того, с каким режимом запускается контейнер.

Базовая директория для Ghidra внутри контейнера находится по пути `/ghidra`.
Все стандартные расположения файлов, конфигураций и т.д. Ghidra внутри этой директории остаются прежними.
Ghidra запускается от пользователя `ghidra` внутри контейнера, с uid `1001` и guid `1001`.

Пользователь `ghidra` имеет права только на следующие директории внутри контейнера:
- `/ghidra`
- `/home/ghidra`

Если контейнеру не передаются никакие аргументы через команду `docker run`,
будет показана справка по использованию соответствующего интерфейса командной строки (CLI) для выбранного режима.

### Отображение локальных томов в контейнере

С томами внутри контейнера могут возникнуть проблемы с правами доступа, если они недоступны для пользователей с идентификатором группы `1001`.

UID и GUID по умолчанию для контейнера — `1001:1001`. Тома, которые отображаются в контейнер, должны быть доступны для этого uid/guid.

Добавление пользователя хост-машины в группу `1001` на хосте упрощает управление томами, которые будут использоваться в контейнере.
Это легко сделать, выполнив `sudo usermod -aG 1001 <user>` в Linux.

### Пример режима headless

```
docker run \
    --env MODE=headless \
    --rm \
    --volume /path/to/myproject:/home/ghidra/myproject \
    --volume /path/to/mybinary:/home/ghidra/mybinary \
    ghidra/ghidra:<version> \
    /home/ghidra/myproject programFolder -import /home/ghidra/mybinary
```

Разберём эту команду построчно:
- `docker run` запускает docker-контейнер с образом `ghidra/ghidra<:<version>`
- `--env MODE=headless` задаёт переменную окружения `MODE` внутри контейнера со значением `headless`
- `--rm` удаляет контейнер после завершения команды
- `--volume /path/to/myproject:/home/ghidra/myproject` монтирует локальный том 
	`/path/to/myproject` на хосте в `/home/ghidra/myproject` внутри контейнера
- `--volume /path/to/mybinary:/home/ghidra/mybinary` монтирует локальный том 
	`/path/to/mybinary` на хосте в `/home/ghidra/mybinary` внутри контейнера
- `ghidra/ghidra:<version>` — полная ссылка на docker-образ, где `ghidra/ghidra` — группа и имя образа, а `<version>` — тег.
- `/home/ghidra/myproject programFolder -import /home/ghidra/mybinary` — аргументы, передаваемые интерфейсу командной строки безголового анализатора Ghidra

Если не передавать аргументы, будет показана справка по безголовому анализатору.

`/path/to/myproject` на хосте должен быть доступен для guid `1001` с правами `rwx`.

### Пример режима gui

Запуск графического интерфейса пользователя (GUI) Ghidra в docker-контейнере не рекомендуется.
Графические интерфейсы не являются типичным вариантом использования для docker-изолированных приложений.

```
docker run \
    --env MODE=gui \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume "$HOME/.Xauthority:/home/ghidra/.Xauthority" \
    ghidra/ghidra:<version>
```

В этом режиме контейнер использует X11-forwarding для отображения графического интерфейса. Настройки X11 могут различаться, но в данном случае
файл Xauthority хоста монтируется в контейнер, контейнер настроен на использование сети хоста, а переменная окружения DISPLAY
передаётся контейнеру. Это позволяет перенаправить GUI обратно на дисплей хост-машины. Также потребуется смонтировать тома с бинарными файлами и проектами Ghidra.

Файл `.Xauthority` на хосте должен иметь соответствующие права — принадлежать группе `:1001` с правами `rw` для группы.

### Пример режима ghidra-server

```
docker run \
    --env MODE=ghidra-server \
    --rm \
    -it \
    --volume /path/to/my/repositories:/ghidra/repositories \
    --volume /path/to/my/configs/server.conf:/ghidra/server/server.conf \
    -p 13100:13100 \
    -p 13101:13101 \
    -p 13102:13102 \
    ghidra/ghidra:<version>
```

Необходимо смонтировать тома в контейнер сервера, чтобы сохранять репозитории, пользователей и настроить сервер.

Для использования svrAdmin выполните вход в запущенный контейнер сервера ghidra с помощью `docker exec -it <container-id> bash`. После входа администрирование и управление сервером Ghidra выполняется так же, как и в среде без контейнера.

Для остановки контейнера выполните команду `docker stop <container-id>`.

ПРИМЕЧАНИЕ: порты, которые вы пробрасываете с хоста в docker-контейнер, должны совпадать. Вы можете изменить базовый порт сервера (например, `13100`) в файле `server.conf`, используя опцию `-p<port>`.

## Пример режима BSIM Server

```
docker run \
    --env MODE=bsim-server \
    --rm \
    -it \
    --volume /path/to/my/datadir:/ghidra/bsim_datadir \
    -p 5432:5432 \
    ghidra/ghidra:<version> \
    /ghidra/bsim_datadir
```

`/ghidra/bsim_datadir` — это директория для хранения данных bsim в контейнере. Можно использовать и другие директории в контейнере,
но убедитесь, что папка на хост-машине имеет соответствующие права и принадлежит группе `:1001`.

Этот пример просто запускает сервер bsim. Настройка сервера bsim и наполнение его данными
может быть выполнена после запуска внутри контейнера аналогично администрированию сервера ghidra.
Администратору нужно выполнить вход в запущенный контейнер сервера bsim (`docker exec -it <container-id> bash`),
после чего администрирование и управление сервером Bsim выполняется так же, как и в среде без контейнера.

Для остановки контейнера выполните команду `docker stop <container-id>`.

## Пример режима BSIM CLI

```
docker run \
		--env MODE=bsim \
		--rm \
		 -it \
		 ghidra/ghidra:<version> \
		 generatesigs ghidra://ghidrasvr/demo /home/ghidra \
			 --bsim postgresql://bsimsvr/demo \
			 --commit --overwrite \
			 --user ghidra
```

В этом примере CLI bsim используется для подключения к серверу ghidra, размещённому на `ghidrasvr`,
генерации сигнатур для репозитория `demo` на этом сервере ghidra и сохранения их в `/home/ghidra`,
а затем отправки сигнатур на сервер BSIM, размещённый на `bsimsvr`, в базу данных `demo`.

## Пример режима Pyghidra Gui

Запуск графического интерфейса пользователя (GUI) Ghidra в docker-контейнере не рекомендуется.
Графические интерфейсы не являются типичным вариантом использования для docker-изолированных приложений.

```
docker run \
    --env MODE=pyghidra \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume="$HOME/.Xauthority:/home/ghidra/.Xauthority:rw" \
    ghidra/ghidra:<version> -c
```

В этом режиме контейнер использует X11-forwarding для отображения графического интерфейса. Настройки X11 могут различаться, но в данном случае
файл Xauthority хоста монтируется в контейнер, контейнер настроен на использование сети хоста, а переменная окружения DISPLAY
передаётся контейнеру. Это позволяет перенаправить GUI обратно на дисплей хост-машины. Также потребуется смонтировать тома с бинарными файлами и проектами Ghidra.

Файл `.Xauthority` на хосте должен иметь соответствующие права — быть владельцем группы `:1001` с правами `rw` для группы.

## Пример режима Pyghidra Headless

```
docker run \
    --env MODE=pyghidra \
    --rm \
    --volume /path/to/myproject:/myproject \
    --volume /path/to/mybinary:/mybinary \
    ghidra/ghidra:<version> -H \
    /myproject programFolder -import /mybinary
```

Если не передавать аргументы безголовому анализатору pyghidra, будет показано меню справки, так же, как и для безголового анализатора.

Этот вариант использования очень похож на пример безголового режима, но с дополнительным преимуществом — возможностью использовать python3 для скриптов Ghidra.

Опять же, в этом примере необходимы соответствующие права и назначение группы для `/path/to/myproject` и `/path/to/mybinary`,
чтобы избежать проблем с правами доступа.
Скачать инструмент