Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
gdb-frontend — ☕ GDBFrontend è un debugger GUI facile, flessibile ed estensibile. | Kitploit
Strumenti/GitHubGitHub/rohanrhu/gdb-frontend
Reverse EngineeringDebuggerAnalisi di BinariApprendimento e Formazione
GitHubrohanrhu/gdb-frontend

gdb-frontend

☕ GDBFrontend è un debugger GUI facile, flessibile ed estensibile.

Vedi Repository
3.0k1129 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

GDBFrontend

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

GDBFrontend è un debugger GUI facile, flessibile ed estensibile.

gdb-frontend

Installazione

Requisiti

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

Pacchetto PIP (Python Wheel) [Consigliato]

Puoi installare GDBFrontend con pip.

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

se è già installato e stai eseguendo un aggiornamento

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

oppure se vuoi installare uno snapshot GIT specifico:

root@kitploit:~
sudo python3 setup.py install

e puoi eseguire

root@kitploit:~
gdbfrontend

Esecuzione da GIT

Puoi scaricare l'ultima versione del sorgente ed eseguirla.

Puoi eseguire gdb-frontend con i seguenti comandi:

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

e puoi aprirlo con:

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

Puoi aprire la shell GDB con il comando:

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

Arch Linux (AUR)

Puoi installare il pacchetto Arch Linux per le distribuzioni basate su Arch. (Pacchetto AUR)

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

e puoi eseguirlo:

root@kitploit:~
gdbfrontend

Flatpak

Il pacchetto Flatpak è un TODO.

Debug di app C/C++ dockerizzate con GDBFrontend

Segui questo tutorial per imparare a eseguire il debug di app C/C++ dockerizzate con GDBFrontend.

Debug embedded con GDBFrontend

Segui questo tutorial rapido per il debug di dispositivi embedded con GDBFrontend.

Debug di estensioni Python C con GDBFrontend

Segui questo tutorial rapido per il debug di estensioni Python C native con GDBFrontend.

Come sviluppare plugin per GDBFrontend?

GDBFrontend dispone di API potenti ed estensibili. Segui questo tutorial rapido per imparare a sviluppare plugin per GDBFrontend.

Come integrare GDBFrontend con il tuo Makefile?

Segui questo tutorial rapido per idee di integrazione per esigenze speciali di sviluppo/debug.

Debug di STM32 usando OpenOCD, GDB e GDBFrontend su Linux

Segui questo tutorial per il debug di STM32 con OpenOCD e GDBFrontend.

Funzionalità

Valutatore di espressioni

GDBFrontend ha un valutatore di espressioni che puoi utilizzare più volte contemporaneamente.

Visualizzazione dei puntatori

Visualizzazione delle liste collegate

Punti di interruzione condizionali

Fai clic destro su un punto di interruzione per impostarne la condizione.

Espressioni connesse

Le espressioni di tutte le variabili, membri e elementi sono connesse in VariablesExplorer di GDBFrontend.

Gestione dei processi

Puoi osservare, filtrare o gestire i processi con il Process Manager.

Visualizzazione del grafico ad array

Collaborazione avanzata

GDBFrontend ha un insieme di funzionalità per la collaborazione chiamate "Collaborazione avanzata".

Disegno collaborativo

Il disegno collaborativo è disponibile quando si abilita la Collaborazione avanzata. Fare clic su Disegna o usare la scorciatoia Ctrl + Shift + X per disegnare e Ctrl + Shift + C per cancellare tutti i disegni.

Visualizzazione sincronizzata del sorgente

Con la Collaborazione avanzata, tutti i client del debugger sono sincronizzati nella visualizzazione del sorgente.

Esploratore variabili a comparsa al passaggio del mouse

Estendibilità

GDBFrontend è molto estensibile e dispone di potenti API. Alcuni esempi dell'estendibilità di 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.

Opzioni

--help, -h

Mostra il testo di aiuto.

--version, -v

Mostra la versione.

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

Specifica gli argomenti della riga di comando di GDB. (Opzionale)

--gdb-executable=PATH, -g PATH

Puoi specificare il percorso dell'eseguibile di GDB come gdbfrontend --gdb-executable=/path/to/gdb. (Opzionale)

--tmux-executable=PATH, -tmux PATH

Puoi specificare il percorso dell'eseguibile di Tmux come gdbfrontend --tmux-executable=/path/to/tmux. (Opzionale)

--terminal-id=PATH, -t PATH

Puoi specificare l'ID del terminale Tmux come gdbfrontend --terminal-id=terminal-name. (Predefinito: gdb-frontend)

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

Specifica nome utente e password per accedere al debugger.

--host=IP, -H IP

Specifica l'indirizzo host corrente a cui puoi accedere per i server HTTP e WS.

--listen=IP, -l IP

Specifica l'indirizzo di ascolto per i server HTTP e WS.

--port=PORT, -p PORT

Specifica la porta HTTP. (0 per porta casuale.)

--url-base=PATH, -u PATH

Specifica il percorso base dell'URL. (Predefinito: /)

--readonly, -r

Rende l'editor di codice in sola lettura. (Nota: questa opzione non è correlata alla sicurezza.)

--workdir, -w

Specifica la directory di lavoro.

--plugin-dir, -P

Specifica la directory dei plugin.

--dontopenuionstartup, -D

Evita di aprire l'interfaccia utente subito dopo l'avvio.

--verbose, -V

Abilita l'output verboso.

Comandi GDB

I comandi GDB di GDBFrontend iniziano con gf-.

gf-refresh

Aggiorna tutti i client del browser.

gf-theme [theme-name]

Passa al tema desiderato. Per esempio: gf-theme light, gf-theme red o gf-theme default per il tema predefinito.

gf-list-plugins

Elenca tutti i plugin di GDBFrontend nella directory dei plugin.

gf-load-plugin [plugin-name]

Carica un plugin di GDBFrontend.

gf-unload-plugin [plugin-name]

Scarica un plugin di GDBFrontend.

Scorciatoie / Hotkey

Le hotkey attuali sono elencate di seguito.

Temi

GDBFrontend ha temi integrati.

Per passare da un tema all'altro usa il comando gf-theme [TEMA] sulla shell 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

Per tornare al tema predefinito.

root@kitploit:~
(gdb) gf-theme

Inoltre, potresti voler dare un'occhiata al Tutorial sullo sviluppo di plugin.

API Python di GDBFrontend

Puoi accedere all'API Python di GDBFrontend tramite il modulo gdbfrontend.

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

Ad esempio, puoi ottenere tutti i socket client in questo modo:

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

oppure puoi ottenere tutti i plugin:

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

Sicurezza nella condivisione delle sessioni

Puoi usare l'opzione --credentials=USER:PASS per aggiungere l'autenticazione HTTP alla tua sessione di debug.

Compatibilità dei browser

GDBFrontend viene sviluppato principalmente testandolo su browser basati su Chromium. Funzionerà correttamente con altri browser, specialmente con Firefox, ma se incontri qualche problema su altri browser, puoi inviare una segnalazione di bug.

Risoluzione dei problemi

Blocco della shell/main-thread di GDB

La maggior parte delle funzioni di GDBFrontend sono thread-safe e lavorano sul main-thread di GDB. Quindi, se esegui qualcosa che blocca la shell GDB, le funzioni di GDBFrontend devono attendere fino al termine.

Riceverai questo avviso quando una funzione thread-safe di GDBFrontend deve lavorare e stai bloccando il main-thread di GDB.

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

Quando esci dalla shell, le funzioni di GDBFrontend in attesa continueranno a funzionare.

Nota: A volte puoi ricevere questo avviso senza aver eseguito nulla nella shell GDB, significa che qualcosa (nel ciclo di eventi di GDB) sta richiedendo molto tempo; in questo caso ignora semplicemente l'avviso.

Processi zombie

GDBFrontend invia SIGTERM ai suoi sotto-processi, alla tua applicazione e ai suoi sotto-processi. Se la tua applicazione genera nuovi processi e imposta i loro PGID, GDBFrontend potrebbe non chiuderli. In questo caso, dovresti inviare SIGKILL ai tuoi processi.

root@kitploit:~
pkill -f gdb

Consigli sulle prestazioni del Valutatore di espressioni

Se stai usando ExpressionEvaluator con variabili/membri espansi a profondità molto lunga, le prestazioni di scorrimento e spostamento della finestra del valutatore potrebbero essere influenzate negativamente per la visualizzazione dei puntatori. In questa situazione, puoi disattivare i puntamenti signal e slot per quella finestra del valutatore.

Evaluator Pointer Visualization Buttons

Problemi e consigli relativi a GDB

  • GDB potrebbe non fornire i sorgenti di un oggetto collegato dinamicamente fino a quando non si esegue un passo su una riga che chiama una funzione dall'oggetto collegato dinamicamente una volta. Puoi aggiungere un punto di interruzione su una riga ed eseguire un passo una volta, poi vedrai i sorgenti dell'oggetto collegato dinamicamente per il resto della sessione.

Windows

In effetti, gdb-frontend è in grado di funzionare su Windows, ma ci sono alcuni seri problemi nella versione Windows di GDB che impediscono l'uso di gdb-frontend su Windows. Certo, puoi usare gdb-frontend su WSL se usi Windows 10.

Problemi relativi a Windows-GDB

  • Il main-thread di GDB viene bloccato durante l'esecuzione del processo. (gdb-frontend ha un meccanismo di interruzione per risolvere questo problema, ma non è ancora sufficiente.)
  • Il prompt di Windows-GDB viene bloccato durante l'esecuzione del processo e ci sono alcuni problemi nell'interrompere l'applicazione.

WSL

Puoi usare gdb-frontend su WSL (Windows Subsystem for Linux).

Problemi relativi a WSL

  • Su WSL 1, l'opzione della porta casuale non è utilizzabile su WSL perché l'interfaccia /proc/net/tcp non funziona su WSL. (WSL 2 non ha questo problema.)

Versionamento

Dalla v0.2.0-beta, GDBFrontend è passato a una nuova strategia di versionamento.

Lettura delle versioni

In vX.Y.Z-STABILITÀ:

  • X sono le versioni major, cambiamenti a lungo termine con funzionalità e miglioramenti importanti.
  • Y sono le versioni main che includono nuove funzionalità e miglioramenti.
  • Z sono le versioni bugfix delle versioni main.
  • STABILITÀ è il livello di stabilità della release. (alpha,beta,rcN,stable)

Documentazione

La documentazione è ancora TODO.

Documentazione API

La documentazione delle API è ancora TODO.

Sviluppo di plugin

Puoi leggere il Tutorial sullo sviluppo di plugin.

Sviluppo di temi

I temi sono sviluppati come plugin.

Discord

Unisciti alla community Discord.

GDBFrontend Discord

🎊 Come contribuire

Puoi contribuire facendo commit al progetto o sviluppando un plugin. Tutti i commit sono benvenuti.

Guida ai contributi

❤️ Dona

  • Patreon
  • GitHub Sponsors

Donazioni in criptovaluta

ValutaIndirizzo
BTCbc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2
ETH / USDT / USDC0x1D99B2a2D85C34d478dD8519792e82B18f861974
XMR88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty

Preferibilmente, si consiglia di donare USDT o USDC, ma puoi donare una qualsiasi delle valute sopra elencate. 🥳

Licenza

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

GNU General Public License v3 (GPL-3)

Puoi copiare, distribuire e modificare il software purché tenga traccia delle modifiche/delle date nei file sorgente. Qualsiasi modifica o software che includa (tramite compilatore) codice con licenza GPL deve essere reso disponibile anche sotto GPL insieme alle istruzioni di compilazione e installazione.

Scarica lo strumento
AzioneScorciatoiaContesto
Generale: Apri un file sorgenteCtrl + OGDBFrontend
Generale: Nuovo ExpressionEvaluatorCtrl + RGDBFrontend
Generale: Nuovo ExpressionEvaluator in finestra nativaCtrl + Shift + RGDBFrontend
Generale: Cerca sorgente fuzzyCtrl + PGDBFrontend
Esecuzione: EseguiF5GDBFrontend
Esecuzione: ContinuaF6GDBFrontend
Esecuzione: Pausa/InterrompiF7GDBFrontend
Esecuzione: Passa sopraF8GDBFrontend
Esecuzione: EntraF9GDBFrontend
Esecuzione: Istruzione passoF10GDBFrontend
Esecuzione: FermaF11GDBFrontend
Collaborazione avanzata: Attiva/disattiva modalità disegnoCtrl + Shift + XGDBFrontend / Collaborazione avanzata: Abilitata
Collaborazione avanzata: Cancella tutti i disegniCtrl + Shift + CGDBFrontend / Collaborazione avanzata: Abilitata