edb-debugger

Débogueur graphique Linux inspiré d'OllyDbg. Propose une interface graphique claire pour l'analyse binaire dynamique, le désassemblage, l'inspection mémoire, et le développement d'exploits sous Linux. Linux graphical debugger inspired by OllyDbg. Features a clean GUI for dynamic binary analysis, disassembly, memory inspection, and exploit development on Linux.

↗ https://github.com/eteran/edb-debugger

Overview

edb-debugger (Evans Debugger) is a Linux graphical debugger designed to feel like OllyDbg on Windows. It provides a visual interface for disassembly, register inspection, memory viewing, and step-through debugging — making exploit development on Linux more accessible than command-line GDB alone.

Basic Usage

Open a binary for debugging

edb --run /path/to/binary

Attach to a running process

edb --attach <PID>

Debug with arguments

edb --run /path/to/binary arg1 arg2

Open from GUI

edb

→ File → Open → select binary

Key Features

Disassembly view — live disassembly with annotations
Register view    — CPU registers updated in real-time
Memory view      — inspect and edit memory regions
Stack view       — visual stack inspection
Breakpoints      — hardware and software breakpoints
Plugins          — extensible via plugin system

Debugging Commands

F9      → Run / Continue
F8      → Step over
F7      → Step into
F4      → Run to cursor
F2      → Toggle breakpoint
F12     → Return from function (step out)
Ctrl+G  → Go to address
Ctrl+E  → Edit memory

Setting Breakpoints

# In GUI:
# 1. Click on instruction in disassembly view
# 2. Press F2 to toggle breakpoint (red dot appears)
# 3. Press F9 to run until breakpoint

# Hardware breakpoints (break on memory access):
# Breakpoints → Hardware → Add breakpoint

Memory Inspection

# View memory regions:
# Memory → Memory Regions

# Search for pattern in memory:
# Memory → Search → hex pattern

# Dump memory to file:
# Memory → Dump → Memory Region

Plugins

# edb supports plugins for extended functionality:
# - Heap Inspector
# - ROP gadget finder
# - Entropy analysis
# - Check checksec protections

# List loaded plugins
# Plugins → Plugin Manager

vs GDB

edb pros:
  - Visual interface (no need to memorize GDB commands)
  - OllyDbg-like workflow familiar to Windows reversers
  - Better for beginners and visual learners

GDB pros:
  - More powerful scripting (Python, GDB scripts)
  - PEDA/GEF extensions for exploit development
  - Works over serial/remote connections
  - Headless environments

Tips

  • For exploit development, combine edb with checksec to understand binary protections
  • Use the memory editor to test payloads without restarting (NOPsled modification)
  • The heap inspector plugin helps visualize heap layout for heap exploitation
  • edb works alongside pwntools scripts — attach edb to the target PID while your exploit runs
Installation

Kali Linux

sudo apt install edb-debugger
# Build from source
sudo apt install cmake libqt5* libboost-dev
git clone https://github.com/eteran/edb-debugger
cd edb-debugger
cmake -DCMAKE_BUILD_TYPE=Release .
make -j4

Vue d’ensemble

edb-debugger (Evans Debugger) est un débogueur graphique Linux conçu pour donner une sensation proche d’OllyDbg sous Windows. Il fournit une interface visuelle pour le désassemblage, l’inspection des registres, la visualisation mémoire, et le débogage pas à pas, rendant le développement d’exploits sous Linux plus accessible que GDB en ligne de commande seul.

Utilisation de base

# Ouvrir un binaire pour le déboguer
edb --run /path/to/binary

# S'attacher à un processus en cours d'exécution
edb --attach <PID>

# Déboguer avec des arguments
edb --run /path/to/binary arg1 arg2

# Ouvrir depuis l'interface graphique
edb

→ File → Open → sélectionner le binaire

Fonctionnalités clés

Vue désassemblage : désassemblage en direct avec annotations
Vue registres      : registres CPU mis à jour en temps réel
Vue mémoire         : inspecter et éditer des régions mémoire
Vue pile            : inspection visuelle de la pile
Points d'arrêt      : points d'arrêt matériels et logiciels
Plugins             : extensible via un système de plugins

Commandes de débogage

F9      → Exécuter / Continuer
F8      → Pas à pas (sans entrer)
F7      → Pas à pas (avec entrée)
F4      → Exécuter jusqu'au curseur
F2      → Basculer un point d'arrêt
F12     → Retour de fonction (sortir)
Ctrl+G  → Aller à une adresse
Ctrl+E  → Éditer la mémoire

Poser des points d’arrêt

# Dans l'interface graphique :
# 1. Cliquer sur une instruction dans la vue de désassemblage
# 2. Appuyer sur F2 pour basculer un point d'arrêt (un point rouge apparaît)
# 3. Appuyer sur F9 pour exécuter jusqu'au point d'arrêt

# Points d'arrêt matériels (déclenchés sur accès mémoire) :
# Breakpoints → Hardware → Add breakpoint

Inspection mémoire

# Voir les régions mémoire :
# Memory → Memory Regions

# Rechercher un motif en mémoire :
# Memory → Search → motif hexadécimal

# Extraire la mémoire vers un fichier :
# Memory → Dump → Memory Region

Plugins

# edb prend en charge des plugins pour des fonctionnalités étendues :
# - Heap Inspector
# - Recherche de gadgets ROP
# - Analyse d'entropie
# - Vérification des protections avec checksec

# Lister les plugins chargés
# Plugins → Plugin Manager

Comparé à GDB

Avantages d'edb :
  - Interface visuelle (pas besoin de mémoriser les commandes GDB)
  - Workflow proche d'OllyDbg, familier aux reversers venant de Windows
  - Meilleur pour les débutants et les apprenants visuels

Avantages de GDB :
  - Scripting plus puissant (Python, scripts GDB)
  - Extensions PEDA/GEF pour le développement d'exploits
  - Fonctionne via des connexions série/distantes
  - Environnements headless

Conseils

  • Pour le développement d’exploits, combinez edb avec checksec pour comprendre les protections du binaire
  • Utilisez l’éditeur de mémoire pour tester des payloads sans redémarrer (modification de NOPsled)
  • Le plugin heap inspector aide à visualiser la disposition du tas pour l’exploitation heap
  • edb fonctionne aux côtés de scripts pwntools : attachez edb au PID cible pendant que votre exploit s’exécute
Installation

Kali Linux

sudo apt install edb-debugger
# Build from source
sudo apt install cmake libqt5* libboost-dev
git clone https://github.com/eteran/edb-debugger
cd edb-debugger
cmake -DCMAKE_BUILD_TYPE=Release .
make -j4