ImHex : un éditeur hexadécimal avec un langage de motifs au cœur
ImHex est un éditeur hexadécimal pour rétro-ingénieurs et programmeurs, avec patch d'octets, gestion des patchs, annulations illimitées et un langage de motifs pour l'analyse binaire.
En bref
- De quoi s’agit-il ?
- A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.. Analyse fondée sur le README, ses commandes et ses limites déclarées.
- À qui s’adresse-t-il ?
- Convient aux analystes qui ont besoin d’un éditeur hexadécimal extensible par patterns et visualisations. Ne convient pas à une analyse où une interprétation implicite serait acceptable.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions. GPL-2.0 est une licence copyleft : si vous distribuez un logiciel qui l’inclut, vous devez publier le code source de ce logiciel sous la même licence. Un usage interne, sans distribution, ne déclenche pas cette obligation.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 2 jours.
- En quel langage est-il écrit ?
- Principalement C++, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le langage de motifs qui définit ImHex · werwolv 1 · werwolv 1
ImHex est un éditeur hexadécimal pour les ingénieurs en rétro-ingénierie, les programmeurs et les personnes qui travaillent à 3 heures du matin. Le README décrit un langage de motifs entièrement personnalisé, de type C++, qui analyse et surligne le contenu d'un fichier. Les motifs sont chargés automatiquement en fonction des types MIME et des valeurs magiques. Le langage prend en charge les tableaux, les pointeurs, les structures, les unions, les énumérations, les champs de bits, les espaces de noms, l'endianness, les conditionnels, etc. Il peut visualiser les données sous forme d'images, d'audio, de modèles 3D, de coordonnées et d'horodatages. Le langage de motifs est un dépôt séparé, avec une documentation sur le site de documentation du projet. Ce langage est le mécanisme central pour comprendre les données binaires au-delà des octets bruts.
Dans le README de WerWolv/ImHex, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour ImHex, relevez ces éléments avant l’essai : <a href="https://imhex.werwolv.net"> <h1 align="center"> <picture> </picture> </h1> </a> <p align="center"> A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. <br> <a href="https://itinerarium.github.io/phoneme-synthesis/?w=/'ˈɪmhɛks/"><strong>/ˈɪmhɛks/</strong></a> </p> <p align="center"> <a title="'Build' workflow Status" href="https:. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale.
Sources de données et préprocesseur · werwolv 2 · werwolv 2
ImHex peut charger des données à partir de fichiers locaux, de disques bruts, d'un serveur GDB pour accéder à la RAM d'un processus en cours ou d'un périphérique embarqué, de fichiers Intel Hex et Motorola SREC, de données encodées en base64, de paquets UDP, de mémoire de processus et de fichiers distants via SSH avec SFTP. Un préprocesseur de données basé sur des nœuds permet de modifier, déchiffrer ou décoder les données avant leur affichage, sans toucher à la source sous-jacente. Vous pouvez ajouter des nœuds personnalisés. Cela permet d'inspecter des données qui nécessitent une transformation avant interprétation. Le README liste également un inspecteur de données qui interprète les données sous de nombreux types, notamment LEB128, GUID, types de temps et couleurs, avec copie et modification via l'inspecteur.
Dans le README de WerWolv/ImHex, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour ImHex, relevez ces éléments avant l’essai : <a href="https://imhex.werwolv.net"> <h1 align="center"> <picture> </picture> </h1> </a> <p align="center"> A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. <br> <a href="https://itinerarium.github.io/phoneme-synthesis/?w=/'ˈɪmhɛks/"><strong>/ˈɪmhɛks/</strong></a> </p> <p align="center"> <a title="'Build' workflow Status" href="https:. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à werwolv-imhex-deep-analysis section 2 paragraphe 2.
Recherche, hachage et désassemblage · werwolv 3 · werwolv 3
Pour trouver des données spécifiques, ImHex offre une extraction de chaînes avec des jeux de caractères et des encodages configurables, une recherche de séquences avec insensibilité à la casse, une recherche par expression régulière, une recherche de motifs binaires avec caractères génériques, et une recherche de valeurs numériques pour entiers et flottants avec options de taille et d'endianness. Il inclut des algorithmes de hachage de CRC8 à SHA-512, MurmurHash, XXHash, Blake2, et autres, pour des régions spécifiques ou des chaînes arbitraires. La comparaison (diffing) compare des données de différentes sources avec surlignage des différences et vue en tableau. Un désassembleur intégré prend en charge toutes les architectures de Capstone, y compris ARM, x86, MIPS, PowerPC, RISC-V, WebAssembly et Ethereum, et vous pouvez écrire des désassembleurs personnalisés.
Dans le README de WerWolv/ImHex, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour ImHex, relevez ces éléments avant l’essai : <a href="https://imhex.werwolv.net"> <h1 align="center"> <picture> </picture> </h1> </a> <p align="center"> A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. <br> <a href="https://itinerarium.github.io/phoneme-synthesis/?w=/'ˈɪmhɛks/"><strong>/ˈɪmhɛks/</strong></a> </p> <p align="center"> <a title="'Build' workflow Status" href="https:. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à werwolv-imhex-deep-analysis section 3 paragraphe 2.
Thèmes et interface · werwolv 4 · werwolv 4
L'interface utilise par défaut le mode sombre pour éviter de brûler les rétines lors des sessions tardives, mais un mode clair est également disponible. Toutes les couleurs et styles des éléments d'interface peuvent être personnalisés via des fichiers de thème partageables, et les polices personnalisées sont prises en charge. L'interface moderne comprend plusieurs espaces de travail, des mises en page personnalisées et des fenêtres détachables. Il existe un mode simplifié pour les débutants, la prise en charge de nombreuses langues, des succès qui guident à travers les fonctionnalités et des tutoriels interactifs. Les signets avec noms et couleurs personnalisés, surlignage, saut, ouverture dans de nouveaux onglets et commentaires sont disponibles. Le README mentionne également un outil de mise à jour de contenu qui télécharge des fichiers de motifs, des bibliothèques, des fichiers magiques, des nœuds personnalisés, des encodages, des thèmes et des règles YARA depuis une base de données.
Dans le README de WerWolv/ImHex, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour ImHex, relevez ces éléments avant l’essai : <a href="https://imhex.werwolv.net"> <h1 align="center"> <picture> </picture> </h1> </a> <p align="center"> A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. <br> <a href="https://itinerarium.github.io/phoneme-synthesis/?w=/'ˈɪmhɛks/"><strong>/ˈɪmhɛks/</strong></a> </p> <p align="center"> <a title="'Build' workflow Status" href="https:. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à werwolv-imhex-deep-analysis section 4 paragraphe 2.
Configuration système et compilation · werwolv 5 · werwolv 5
ImHex nécessite un GPU avec support OpenGL 3.0, bien qu'il existe des versions rendues par logiciel avec le suffixe -NoGPU. Les CPU officiellement supportées sont x86, AMD64 et ARM64, et toute CPU little-endian devrait fonctionner. L'utilisation de RAM est d'environ 50 Mio, et le stockage d'environ 100 Mio. Windows 7 ou supérieur est pris en charge, macOS 15 ou supérieur pour les binaires de version (les versions inférieures nécessitent une auto-compilation), les distributions Linux incluant Ubuntu, Debian, Fedora, RHEL/AlmaLinux, Arch, ainsi que les paquets AppImage, Flatpak et Snap, et FreeBSD 14.3 testé. La compilation nécessite GCC ou Clang avec support C++23 ; MSVC et AppleClang ne sont pas pris en charge. Les dépendances sont incluses en tant que sous-modules, et le clonage doit utiliser --recurse-submodules.
Dans le README de WerWolv/ImHex, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour ImHex, relevez ces éléments avant l’essai : <a href="https://imhex.werwolv.net"> <h1 align="center"> <picture> </picture> </h1> </a> <p align="center"> A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. <br> <a href="https://itinerarium.github.io/phoneme-synthesis/?w=/'ˈɪmhɛks/"><strong>/ˈɪmhɛks/</strong></a> </p> <p align="center"> <a title="'Build' workflow Status" href="https:. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à werwolv-imhex-deep-analysis section 5 paragraphe 2.
Licence et développement de plugins · werwolv 6 · werwolv 6
La majeure partie d'ImHex est sous GPLv2-only, avec des exceptions pour /lib/libimhex et /plugins/ui qui sont sous LGPLv2.1, permettant des plugins propriétaires. Le README indique que cela permet de développer des plugins sans être forcé de les rendre open source. Le développement de plugins utilise un projet modèle et le SDK, qui peut être construit en compilant ImHex avec -DIMHEX_BUNDLE_PLUGIN_SDK=ON et en l'installant. Le SDK se trouve ensuite dans install/usr/local/share/imhex/sdk, et vous définissez IMHEX_SDK_PATH. Le README remercie également des sponsors notables comme JetBrains, SignPath et AWS pour les licences et l'IC. L'extrait de licence est le texte GPL v2, qui accorde des droits de copie, de distribution et de modification mais ne fournit aucune garantie.
Dans le README de WerWolv/ImHex, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour ImHex, relevez ces éléments avant l’essai : <a href="https://imhex.werwolv.net"> <h1 align="center"> <picture> </picture> </h1> </a> <p align="center"> A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM. <br> <a href="https://itinerarium.github.io/phoneme-synthesis/?w=/'ˈɪmhɛks/"><strong>/ˈɪmhɛks/</strong></a> </p> <p align="center"> <a title="'Build' workflow Status" href="https:. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale. Repère propre à werwolv-imhex-deep-analysis section 6 paragraphe 2.
Conclusion éditoriale
Convient aux analystes qui ont besoin d’un éditeur hexadécimal extensible par patterns et visualisations. Ne convient pas à une analyse où une interprétation implicite serait acceptable. Vérifiez d’abord le build CMake, le chargement d’un fichier témoin et le résultat du pattern utilisé.
Notes de la communauté