imhex

Éditeur hexadécimal complet pour reverse engineers et analystes forensiques. Langage de motifs pour l'analyse de données, interface en thème sombre, inspecteur de données et outils de visualisation. Feature-rich hex editor for reverse engineers and forensic analysts. Pattern language for data parsing, dark theme UI, data inspector, and visualization tools.

↗ https://github.com/WerWolv/ImHex

Overview

ImHex is a modern, feature-rich hex editor built specifically for reverse engineers. Unlike traditional hex editors, it includes a custom pattern language for defining binary file structures, a data inspector panel, entropy visualization, a built-in disassembler, and bookmarks — making it far more useful for binary analysis than simple hex editing.

Installation

Kali Linux

sudo apt install imhex
# Or download from GitHub releases
# https://github.com/WerWolv/ImHex/releases

Flatpak

flatpak install flathub net.werwolv.ImHex

Basic Usage

# Open a file
imhex file.bin
imhex firmware.bin

Or launch and use File → Open

imhex

Key Features

Hex Editor Panel:
  - View and edit bytes in hex and ASCII
  - Multi-selection, find/replace
  - Unlimited undo/redo

Data Inspector:
  - Right panel shows value under cursor as:
    uint8, int8, uint16, int16, uint32, int32, uint64, int64
    float32, float64, ASCII, UTF-8, UTF-16

Pattern Language:
  - Define binary structures (like structs in C)
  - Auto-parses and highlights file sections
  - Pre-made patterns for PNG, ELF, PE, ZIP, etc.

Visualization:
  - Entropy map (detects encrypted/compressed sections)
  - Dot matrix view
  - Byte distribution histogram

Bookmarks:
  - Annotate regions of interest
  - Share as .hexbm files

Pattern Language Example

// Define a custom binary structure
struct FileHeader {
    u32 magic;
    u32 version;
    u32 data_offset;
    u32 data_size;
};

FileHeader header @ 0x00;

Useful Built-in Patterns

# Apply a pattern (Extras → Pattern Language Editor):
# Load pre-made patterns for common formats:
# - ELF binary structure
# - PE/COFF Windows executable
# - PNG image format
# - ZIP archive format
# - FAT filesystem

# Patterns highlight the relevant bytes automatically
# making it easy to navigate complex binary formats

Entropy Analysis

# View → Entropy:
# Shows entropy (randomness) of file sections
# High entropy regions (near 8.0) = encrypted or compressed
# Low entropy = plaintext data, padding
# Useful for:
# - Finding encrypted sections in malware
# - Locating compressed payloads
# - Identifying packed executables

Search and Navigation

Ctrl+F       Find hex bytes or ASCII
Ctrl+G       Go to offset/address
Ctrl+B       Manage bookmarks
Ctrl+D       Data inspector toggle
Ctrl+P       Pattern language editor

Tips

  • Load PE pattern for Windows EXEs to auto-parse headers, sections, and imports
  • Entropy view is the fastest way to spot packed/encrypted payloads in malware samples
  • Use bookmarks to annotate interesting regions and share findings with the team
  • The data inspector saves constant manual conversion from hex to integer types
Keyboard Shortcuts
Ctrl+O      Open file
Ctrl+S      Save
Ctrl+F      Find
Ctrl+G      Go to address
Ctrl+Z      Undo
Ctrl+Y      Redo
Ctrl+B      Bookmarks
Ctrl+P      Pattern editor
Ctrl+D      Data inspector
F1          Help

Vue d’ensemble

ImHex est un éditeur hexadécimal moderne et complet, conçu spécifiquement pour les reverse engineers. Contrairement aux éditeurs hexadécimaux traditionnels, il inclut un langage de motifs personnalisé pour définir les structures des fichiers binaires, un panneau d’inspecteur de données, une visualisation d’entropie, un désassembleur intégré et des signets, ce qui le rend bien plus utile que le simple hex editing pour l’analyse binaire.

Installation

# Kali Linux
sudo apt install imhex

# Ou télécharger depuis les releases GitHub
# https://github.com/WerWolv/ImHex/releases

# Flatpak
flatpak install flathub net.werwolv.ImHex

Utilisation de base

# Ouvrir un fichier
imhex file.bin
imhex firmware.bin

# Ou lancer sans argument et utiliser File → Open
imhex

Fonctionnalités clés

Panneau Éditeur Hexadécimal :
  - Visualiser et éditer les octets en hexadécimal et ASCII
  - Sélection multiple, rechercher/remplacer
  - Annuler/rétablir illimité

Inspecteur de données :
  - Le panneau de droite affiche la valeur sous le curseur en :
    uint8, int8, uint16, int16, uint32, int32, uint64, int64
    float32, float64, ASCII, UTF-8, UTF-16

Langage de motifs (Pattern Language) :
  - Définir des structures binaires (comme les structs en C)
  - Analyse et surligne automatiquement les sections du fichier
  - Motifs prédéfinis pour PNG, ELF, PE, ZIP, etc.

Visualisation :
  - Carte d'entropie (détecte les sections chiffrées/compressées)
  - Vue en matrice de points
  - Histogramme de distribution des octets

Signets :
  - Annoter les régions d'intérêt
  - Partager sous forme de fichiers .hexbm

Exemple de langage de motifs

// Définir une structure binaire personnalisée
struct FileHeader {
    u32 magic;
    u32 version;
    u32 data_offset;
    u32 data_size;
};

FileHeader header @ 0x00;

Modèles intégrés utiles

# Appliquer un motif (Extras → Pattern Language Editor) :
# Charger des motifs prédéfinis pour les formats courants :
# - Structure binaire ELF
# - Exécutable Windows PE/COFF
# - Format d'image PNG
# - Format d'archive ZIP
# - Système de fichiers FAT

# Les motifs surlignent automatiquement les octets pertinents
# ce qui facilite la navigation dans les formats binaires complexes

Analyse d’entropie

# View → Entropy :
# Affiche l'entropie (le caractère aléatoire) des sections du fichier
# Régions à forte entropie (proche de 8.0) = chiffrées ou compressées
# Faible entropie = données en clair, padding
# Utile pour :
# - Trouver des sections chiffrées dans un malware
# - Localiser des payloads compressés
# - Identifier des exécutables packés

Recherche et navigation

Ctrl+F       Rechercher des octets hexadécimaux ou de l'ASCII
Ctrl+G       Aller à un offset/une adresse
Ctrl+B       Gérer les signets
Ctrl+D       Basculer l'inspecteur de données
Ctrl+P       Éditeur de langage de motifs

Conseils

  • Charger le motif PE pour les EXE Windows afin d’analyser automatiquement les en-têtes, sections et imports
  • La vue entropie est le moyen le plus rapide de repérer des payloads packés/chiffrés dans des échantillons de malware
  • Utiliser les signets pour annoter les régions intéressantes et partager les découvertes avec l’équipe
  • L’inspecteur de données évite les conversions manuelles constantes du hexadécimal vers les types entiers
Raccourcis clavier
Ctrl+O      Open file
Ctrl+S      Save
Ctrl+F      Find
Ctrl+G      Go to address
Ctrl+Z      Undo
Ctrl+Y      Redo
Ctrl+B      Bookmarks
Ctrl+P      Pattern editor
Ctrl+D      Data inspector
F1          Help