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

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

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

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

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

Категории

Все категории
Loading categories
gdb-frontend — ☕ GDBFrontend — это простой, гибкий и расширяемый графический отладчик. | Kitploit
Инструменты/GitHubGitHub/rohanrhu/gdb-frontend
Обратная инженерияОтладчикиАнализ Бинарных ФайловОбучение и Образование
GitHubrohanrhu/gdb-frontend

gdb-frontend

☕ GDBFrontend — это простой, гибкий и расширяемый графический отладчик.

Репозиторий
3.0k1129 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

GDBFrontend

GitHub release GitHub issues GitHub forks GitHub stars GDBFrontend Discord Support me on Patreon

GDBFrontend — это простой, гибкий и расширяемый GUI-отладчик.

gdb-frontend

Установка

Требования

  • GDB => 8.2 (с python3)
  • python3 => 3.6
  • tmux

PIP-пакет (Python Wheel) [Рекомендуется]

Вы можете установить GDBFrontend с помощью pip.

root@kitploit:~
sudo python3 -m pip install gdbfrontend

если он уже установлен и вы обновляетесь

root@kitploit:~
sudo python3 -m pip install --upgrade gdbfrontend

или если вы хотите установить конкретный снимок GIT:

root@kitploit:~
sudo python3 setup.py install

и вы можете запустить

root@kitploit:~
gdbfrontend

Запуск из GIT

Вы можете скачать последний исходный код и запустить его.

Вы можете запустить gdb-frontend с помощью следующих команд:

root@kitploit:~
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend

и вы можете открыть его по адресу:

root@kitploit:~
http://127.0.0.1:5550/

Вы можете открыть оболочку GDB с помощью команды:

root@kitploit:~
tmux a -t gdb-frontend

Arch Linux (AUR)

Вы можете установить пакет Arch Linux для дистрибутивов на основе Arch. (Пакет AUR)

root@kitploit:~
yay -S gdb-frontend-bin

и запустить его:

root@kitploit:~
gdbfrontend

Flatpak

Flatpak-пакет — это TODO.

Отладка контейнеризированных C/C++ приложений с помощью GDBFrontend

Следуйте этому руководству, чтобы узнать, как отлаживать контейнеризированные C/C++ приложения с помощью GDBFrontend.

Встроенная отладка с GDBFrontend

Следуйте этому краткому руководству, чтобы отлаживать встроенные устройства с помощью GDBFrontend.

Отладка расширений C для Python с помощью GDBFrontend

Следуйте этому краткому руководству, чтобы отлаживать нативные C-расширения Python с помощью GDBFrontend.

Как разрабатывать плагины для GDBFrontend?

GDBFrontend имеет мощные и расширяемые API. Следуйте этому краткому руководству, чтобы научиться разрабатывать плагины для GDBFrontend.

Как интегрировать GDBFrontend с вашим Makefile?

Следуйте этому краткому руководству для идей интеграции для особых требований разработки/отладки.

Отладка STM32 с использованием OpenOCD, GDB и GDBFrontend в Linux

Следуйте этому руководству, чтобы отлаживать STM32 с помощью OpenOCD и GDBFrontend.

Возможности

Вычислитель выражений

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

Визуализация указателей

Визуализация связных списков

Условные точки останова

Щелкните правой кнопкой мыши по точке останова, чтобы установить условие.

Связанные выражения

Выражения всех переменных, членов и элементов соединены в VariablesExplorer GDBFrontend.

Менеджер процессов

Вы можете просматривать, фильтровать или управлять процессами с помощью Process Manager.

Визуализация графа-массива

Расширенное сотрудничество

GDBFrontend имеет набор функций для совместной работы, называемый «Расширенное сотрудничество».

Рисование при сотрудничестве

Рисование при сотрудничестве доступно, когда включено Расширенное сотрудничество. Нажмите «Рисовать» или используйте сочетание Ctrl + Shift + X, чтобы рисовать, и Ctrl + Shift + C, чтобы очистить все рисунки.

Синхронизированный просмотр исходного кода

При расширенном сотрудничестве все клиенты отладчика синхронизированы при просмотре исходного кода.

Всплывающее окно переменной при наведении на выражение

Расширяемость

GDBFrontend очень расширяем и имеет мощные API. Некоторые примеры расширяемости GDBFrontend.

./gdbfrontend

root@kitploit:~
$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.

Options:
  --help, -h:                                   Shows this help message.
  --version, -v:                                Shows version.
  --gdb-args="ARGS", -G "ARGS":                 Specifies GDB command line arguments. (Optional)
  --gdb-executable=PATH, -g PATH:               Specifies GDB executable path (Default is "gdb" command on PATH environment variable.)
  --tmux-executable=PATH, -tmux PATH:           Specifies Tmux executable path (Default is "tmux" command on PATH environment variable.)
  --terminal-id=NAME, -t NAME:                  Specifies tmux terminal identifier name (Default is "gdb-frontend".)
  --credentials=USER:PASS, -c USER:PASS:        Specifies username and password for accessing to debugger.
  --host=IP, -H IP:                             Specifies current host address that you can access via for HTTP and WS servers.
  --listen=IP, -l IP:                           Specifies listen address for HTTP and WS servers.
  --port=PORT, -p PORT:                         Specifies HTTP port. (0 for random port.)
  --url-base=PATH, -u PATH:                     Specifies URL base path. (Default: /)
  --readonly, -r:                               Makes code editor readonly. (Notice: This option is not related to security.)
  --workdir, -w:                                Specifies working directory.
  --plugin-dir, -P:                             Specifies plugins directory.
  --dontopenuionstartup, -D:                    Avoids opening UI just after startup.
  --verbose, -V:                                Enables verbose output.

Параметры

--help, -h

Показывает справочный текст.

--version, -v

Показывает версию.

--gdb-args="ARGS", -G "ARGS"

Указывает аргументы командной строки GDB. (Необязательно)

--gdb-executable=PATH, -g PATH

Вы можете указать путь к исполняемому файлу GDB, например gdbfrontend --gdb-executable=/path/to/gdb. (Необязательно)

--tmux-executable=PATH, -tmux PATH

Вы можете указать путь к исполняемому файлу Tmux, например gdbfrontend --tmux-executable=/path/to/tmux. (Необязательно)

--terminal-id=PATH, -t PATH

Вы можете указать идентификатор терминала Tmux, например gdbfrontend --terminal-id=terminal-name. (По умолчанию: gdb-frontend)

--credentials=USER:PASS, -c USER:PASS

Указывает имя пользователя и пароль для доступа к отладчику.

--host=IP, -H IP

Указывает текущий адрес хоста, доступный для HTTP и WS серверов.

--listen=IP, -l IP

Указывает адрес прослушивания для HTTP и WS серверов.

--port=PORT, -p PORT

Указывает HTTP порт. (0 для случайного порта.)

--url-base=PATH, -u PATH

Указывает базовый путь URL. (По умолчанию: /)

--readonly, -r

Делает редактор кода только для чтения. (Примечание: Эта опция не связана с безопасностью.)

--workdir, -w

Указывает рабочую директорию.

--plugin-dir, -P

Указывает директорию плагинов.

--dontopenuionstartup, -D

Избегает открытия интерфейса сразу после запуска.

--verbose, -V

Включает подробный вывод.

Команды GDB

Команды GDB GDBFrontend начинаются с gf-.

gf-refresh

Обновляет всех клиентов браузера.

gf-theme [имя-темы]

Переключает на нужную тему. Например: gf-theme light, gf-theme red или gf-theme default для темы по умолчанию.

gf-list-plugins

Список всех плагинов GDBFrontend в директории плагинов.

gf-load-plugin [имя-плагина]

Загружает плагин GDBFrontend.

gf-unload-plugin [имя-плагина]

Выгружает плагин GDBFrontend.

Горячие клавиши / Сочетания клавиш

Текущие горячие клавиши перечислены ниже.

Темы

GDBFrontend имеет встроенные темы.

Для переключения между темами используйте команду gf-theme [ТЕМА] в оболочке GDB.

root@kitploit:~
(gdb) gf-theme doki
(gdb) gf-theme sky
(gdb) gf-theme sakura
(gdb) gf-theme waifu
(gdb) gf-theme cyberpunk
(gdb) gf-theme dark
(gdb) gf-theme green
(gdb) gf-theme light
(gdb) gf-theme red

Для возврата к теме по умолчанию.

root@kitploit:~
(gdb) gf-theme

Также вы можете обратиться к Руководству по разработке плагинов.

Python API GDBFrontend

Вы можете получить доступ к Python API GDBFrontend через модуль gdbfrontend.

root@kitploit:~
(gdb) python-interactive
root@kitploit:~
>>> dir(gdbfrontend)

Например, вы можете получить все клиентские сокеты следующим образом:

root@kitploit:~
>>> gdbfrontend.api.globalvars.httpServer.ws_clients
{1: <server.GDBFrontendSocket object at 0x...>}

или вы можете получить все плагины:

root@kitploit:~
>>> gdbfrontend.plugin.getAll()
['hello', 'theme_cyberpunk', 'theme_dark', 'theme_doki', 'theme_green', 'theme_light', 'theme_red', 'theme_sakura', 'theme_sky', 'theme_waifu']

Безопасность при совместном использовании сессий

Вы можете использовать опцию --credentials=USER:PASS для добавления HTTP-аутентификации в вашу сессию отладчика.

Поддержка браузеров

GDBFrontend в основном разрабатывается с тестированием на браузерах на основе Chromium. Он будет корректно работать и с другими браузерами, особенно с Firefox, но если вы столкнётесь с проблемами в других браузерах, вы можете отправить отчёт об ошибке.

Устранение неполадок

Блокировка главного потока/оболочки GDB

Большинство функций GDBFrontend являются потокобезопасными и работают в главном потоке GDB. Поэтому, если вы запускаете что-то блокирующее в оболочке GDB, функции GDBFrontend должны ждать его завершения.

Вы получите это предупреждение, когда потокобезопасной функции GDBFrontend потребуется работа, а вы блокируете главный поток GDB.

root@kitploit:~
(gdb) shell
$ ...

Когда вы выйдете из оболочки, блокирующие функции GDBFrontend продолжат работу.

Примечание: Иногда вы можете получить это предупреждение, не запуская ничего в оболочке GDB; это означает, что что-то (в цикле событий GDB) занимает много времени; в таком случае просто проигнорируйте это предупреждение.

Процессы-зомби

GDBFrontend отправляет SIGTERM своим подпроцессам, вашему приложению и его подпроцессам. Если ваше приложение порождает новые процессы и устанавливает их PGID, GDBFrontend может их не закрыть. В этом случае вы должны отправить SIGKILL вашим процессам.

root@kitploit:~
pkill -f gdb

Советы по производительности вычислителя выражений

Если вы используете Вычислитель выражений с очень длинной глубиной развёрнутых переменных/членов, это может негативно сказаться на производительности прокрутки и перемещения окна вычислителя для визуализации указателей. В такой ситуации вы можете отключить указания signal и slot для этого окна вычислителя.

Кнопки визуализации указателей вычислителя

Проблемы и советы, связанные с GDB

  • GDB может не предоставлять исходники динамически связанного объекта, пока вы не выполните шаг в строке, которая вызывает функцию из динамически связанного объекта хотя бы один раз. Вы можете установить точку останова на строке и выполнить шаг один раз, после чего исходники из динамически связанного объекта будут видны в течение сессии.

Windows

На самом деле gdb-frontend может работать в Windows, но есть серьёзные проблемы в версии GDB для Windows, которые мешают использованию gdb-frontend в Windows. Конечно, вы можете использовать gdb-frontend в WSL, если у вас Windows 10.

Проблемы с Windows-GDB

  • Главный поток GDB блокируется во время выполнения процесса. (gdb-frontend имеет механизм прерывания для исправления этого, но этого пока недостаточно.)
  • Приглашение Windows-GDB блокируется во время выполнения процесса, и есть некоторые проблемы с прерыванием приложения.

WSL

Вы можете использовать gdb-frontend в WSL (подсистема Windows для Linux).

Проблемы с WSL

  • В WSL 1 опция случайного порта неприменима, потому что интерфейс /proc/net/tcp не работает в WSL. (WSL 2 не имеет этой проблемы.)

Версионирование

Начиная с v0.2.0-beta, GDBFrontend перешёл на новую стратегию версионирования.

Чтение версий

В vX.Y.Z-STABILITY:

  • X — основные версии, изменения долгосрочные с крупными функциями и улучшениями.
  • Y — главные версии, которые включают новые функции и улучшения.
  • Z — исправления ошибок главных версий.
  • STABILITY — уровень стабильности релиза (alpha, beta, rcN, stable).

Документация

Документация — TODO.

Документация API

Документация API — TODO.

Разработка плагинов

Вы можете прочитать Руководство по разработке плагинов.

Разработка тем

Темы разрабатываются как плагины.

Discord

Присоединяйтесь к сообществу Discord.

GDBFrontend Discord

🎊 Участие в разработке

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

Руководство по участию

❤️ Пожертвовать

  • Patreon
  • GitHub Sponsors

Пожертвования в криптовалюте

ВалютаАдрес
BTCbc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2
ETH / USDT / USDC0x1D99B2a2D85C34d478dD8519792e82B18f861974
XMR88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty

Предпочтительно рекомендую пожертвовать USDT или USDC, но вы можете пожертвовать любую из вышеуказанных валют. 🥳

Лицензия

Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)

GNU General Public License v3 (GPL-3)

Вы можете копировать, распространять и модифицировать программное обеспечение при условии отслеживания изменений/дат в исходных файлах. Любые модификации программного обеспечения или программное обеспечение, включающее (через компилятор) код под лицензией GPL, также должны быть доступны под лицензией GPL вместе с инструкциями по сборке и установке.

Скачать инструмент
ДействиеГорячая клавишаКонтекст
Общие: Открыть файл исходного кодаCtrl + OGDBFrontend
Общие: Новый вычислитель выраженийCtrl + RGDBFrontend
Общие: Новый вычислитель выражений в отдельном окнеCtrl + Shift + RGDBFrontend
Общие: Поиск исходного файла (fuzzy)Ctrl + PGDBFrontend
Выполнение: ЗапускF5GDBFrontend
Выполнение: ПродолжитьF6GDBFrontend
Выполнение: Пауза/ПрерываниеF7GDBFrontend
Выполнение: Шаг с обходомF8GDBFrontend
Выполнение: Шаг с заходомF9GDBFrontend
Выполнение: Шаг по инструкцииF10GDBFrontend
Выполнение: ОстановкаF11GDBFrontend
Расширенное сотрудничество: Включить режим рисованияCtrl + Shift + XGDBFrontend / Расширенное сотрудничество: Вкл.
Расширенное сотрудничество: Очистить все рисункиCtrl + Shift + CGDBFrontend / Расширенное сотрудничество: Вкл.