Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gdb-frontend — ☕ GDBFrontend는 쉽고, 유연하며 확장 가능한 GUI 디버거입니다. | Kitploit
도구/GitHubGitHub/rohanrhu/gdb-frontend
Reverse EngineeringDebuggersBinary AnalysisLearning & Education
GitHubrohanrhu/gdb-frontend

gdb-frontend

☕ GDBFrontend는 쉽고, 유연하며 확장 가능한 GUI 디버거입니다.

저장소 보기
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) [권장]

pip을 사용하여 GDBFrontend를 설치할 수 있습니다.

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 기반 배포판용 Arch Linux 패키지를 설치할 수 있습니다. (AUR 패키지)

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

그리고 실행할 수 있습니다:

root@kitploit:~
gdbfrontend

Flatpak

Flatpak 패키지는 TODO 항목입니다.

Docker화된 C/C++ 앱을 GDBFrontend로 디버깅하기

이 튜토리얼을 따라 Docker화된 C/C++ 앱을 GDBFrontend로 디버깅하는 방법을 배우세요.

GDBFrontend로 임베디드 디버깅

이 빠른 튜토리얼을 따라 GDBFrontend로 임베디드 장치를 디버깅하는 방법을 배우세요.

GDBFrontend로 Python C 확장 디버깅

이 빠른 튜토리얼을 따라 GDBFrontend로 네이티브 C Python 확장을 디버깅하는 방법을 배우세요.

GDBFrontend 플러그인 개발 방법

GDBFrontend는 강력하고 확장 가능한 API를 제공합니다. 이 빠른 튜토리얼을 따라 GDBFrontend 플러그인 개발을 배우세요.

Makefile에 GDBFrontend 통합 방법

이 빠른 튜토리얼을 따라 특수 개발/디버깅 요구 사항에 대한 통합 아이디어를 알아보세요.

Linux에서 OpenOCD, GDB 및 GDBFrontend를 사용한 STM32 디버깅

이 튜토리얼을 따라 OpenOCD 및 GDBFrontend로 STM32를 디버깅하는 방법을 배우세요.

기능

표현식 평가기

GDBFrontend에는 동시에 여러 개를 사용할 수 있는 표현식 평가기가 있습니다.

포인터 시각화

연결 리스트 시각화

조건부 중단점

중단점을 우클릭하여 조건을 설정하세요.

연결된 표현식

모든 변수, 멤버 및 항목의 표현식은 GDBFrontend의 VariablesExplorer에서 연결됩니다.

프로세스 관리자

프로세스 관리자로 프로세스를 보고, 필터링하거나 관리할 수 있습니다.

배열-그래프 시각화

향상된 협업

GDBFrontend에는 "향상된 협업"이라는 협업을 위한 여러 기능이 있습니다.

협업 드로잉

향상된 협업을 활성화하면 협업 드로잉이 가능합니다. 드로잉을 클릭하거나 Ctrl + Shift + X 단축키를 사용하여 드로잉하고, Ctrl + Shift + C를 사용하여 모든 드로잉을 지울 수 있습니다.

동기화된 소스 보기

향상된 협업을 사용하면 모든 디버거 클라이언트가 소스 보기에서 동기화됩니다.

표현식 호버 팝업 변수 탐색기

확장성

GDBFrontend는 매우 확장 가능하며 강력한 API를 제공합니다. GDBFrontend의 확장성 몇 가지 예시입니다.

./gdbfrontend

root@kitploit:~
$ gdbfrontend --help
GDBFrontend는 쉽고 유연하며 확장 가능한 GUI 디버거입니다.

옵션:
  --help, -h:                                   도움말 메시지를 표시합니다.
  --version, -v:                                버전을 표시합니다.
  --gdb-args="ARGS", -G "ARGS":                 GDB 명령줄 인수를 지정합니다. (선택 사항)
  --gdb-executable=PATH, -g PATH:               GDB 실행 파일 경로를 지정합니다. (기본값: PATH 환경 변수의 "gdb" 명령어)
  --tmux-executable=PATH, -tmux PATH:           Tmux 실행 파일 경로를 지정합니다. (기본값: PATH 환경 변수의 "tmux" 명령어)
  --terminal-id=NAME, -t NAME:                  Tmux 터미널 식별자 이름을 지정합니다. (기본값: "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:                    시작 직후 UI를 열지 않습니다.
  --verbose, -V:                                상세 출력을 활성화합니다.

옵션

--help, -h

도움말 텍스트를 표시합니다.

--version, -v

버전을 표시합니다.

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

GDB 명령줄 인수를 지정합니다. (선택 사항)

--gdb-executable=PATH, -g PATH

gdbfrontend --gdb-executable=/path/to/gdb와 같이 GDB 실행 파일 경로를 지정할 수 있습니다. (선택 사항)

--tmux-executable=PATH, -tmux PATH

gdbfrontend --tmux-executable=/path/to/tmux와 같이 Tmux 실행 파일 경로를 지정할 수 있습니다. (선택 사항)

--terminal-id=PATH, -t PATH

gdbfrontend --terminal-id=terminal-name와 같이 Tmux 터미널 ID를 지정할 수 있습니다. (기본값: 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

시작 직후 UI를 열지 않습니다.

--verbose, -V

상세 출력을 활성화합니다.

GDB 명령어

GDBFrontend의 GDB 명령어는 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에는 내장 테마가 있습니다.

테마 전환은 GDB 셸에서 gf-theme [테마] 명령어를 사용하세요.

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

또한 플러그인 개발 튜토리얼을 확인해 보세요.

GDBFrontend Python API

gdbfrontend 모듈을 통해 GDBFrontend의 Python API에 접근할 수 있습니다.

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']

세션 공유 시 보안

디버거 세션에 HTTP 인증을 추가하려면 --credentials=USER:PASS 옵션을 사용하세요.

브라우저 호환성

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

Expression Evaluator 성능 팁

매우 긴 깊이로 확장된 변수/멤버와 함께 ExpressionEvaluator를 사용하는 경우, 포인터 시각화에서 스크롤 및 평가기 창 이동 성능이 저하될 수 있습니다. 이 경우 해당 평가기 창의 signal 및 slot 포인팅을 끌 수 있습니다.

Evaluator Pointer Visualization Buttons

GDB 관련 문제 및 팁

  • GDB는 동적 링크 객체에서 함수를 호출하는 라인을 한 번 스텝하지 않으면 동적 링크 객체의 소스를 제공하지 않을 수 있습니다. 해당 라인에 중단점을 추가하고 한 번 스텝하면 이후 세션 동안 동적 링크 객체의 소스를 볼 수 있습니다.

Windows

사실 gdb-frontend는 Windows에서 실행할 수 있지만, GDB Windows 버전에 심각한 문제가 있어 Windows에서 gdb-frontend를 사용하기 어렵습니다. 물론 Windows 10을 사용한다면 WSL에서 gdb-frontend를 사용할 수 있습니다.

Windows-GDB 관련 문제

  • GDB의 메인 스레드가 실행 중인 프로세스 중에 차단됩니다. (gdb-frontend에는 이를 해결하기 위한 인터럽트 메커니즘이 있지만 아직 충분하지 않습니다.)
  • Windows-GDB의 프롬프트가 실행 중인 프로세스 중에 차단되며, 애플리케이션을 인터럽트하는 데 문제가 있습니다.

WSL

WSL(Windows Subsystem for Linux)에서 gdb-frontend를 사용할 수 있습니다.

WSL 관련 문제

  • WSL 1에서는 /proc/net/tcp 인터페이스가 작동하지 않아 랜덤 포트 옵션을 사용할 수 없습니다. (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
일반: 새 ExpressionEvaluator 열기Ctrl + RGDBFrontend
일반: 네이티브 창에 새 ExpressionEvaluator 열기Ctrl + Shift + RGDBFrontend
일반: 퍼지 소스 검색기Ctrl + PGDBFrontend
런타임: 실행F5GDBFrontend
런타임: 계속F6GDBFrontend
런타임: 일시 정지/인터럽트F7GDBFrontend
런타임: Step OverF8GDBFrontend
런타임: Step IntoF9GDBFrontend
런타임: Step InstructionF10GDBFrontend
런타임: 중지F11GDBFrontend
향상된 협업: 드로잉 모드 전환Ctrl + Shift + XGDBFrontend / 향상된 협업 활성화됨
향상된 협업: 모든 드로잉 지우기Ctrl + Shift + CGDBFrontend / 향상된 협업 활성화됨