4 points par GN⁺ 2024-06-30 | 1 commentaires | Partager sur WhatsApp

Un éditeur hexadécimal pour les reverse engineers, les programmeurs et ceux qui travaillent à 3 h du matin

Support

  • Soutien possible via GitHub Sponsors, Patreon et PayPal

Captures d’écran

  • Captures d’écran supplémentaires disponibles

Fonctionnalités

Affichage hexadécimal riche

  • Patching d’octets, gestion des patchs, Undo/Redo illimité
  • Copie des octets dans divers formats
  • Recherche simple de chaînes et en hexadécimal
  • Aller au début, à la fin ou à la position actuelle du curseur
  • Mise en surbrillance variée
  • Affichage dans différents types de données
  • Décodage des données en ASCII et avec des encodages personnalisés
  • Affichage des données par pages

Langage de motifs proche du C++

  • Chargement automatique basé sur le type MIME et les valeurs magiques
  • Prise en charge de la visualisation de divers types de données
  • Messages d’erreur utiles, coloration syntaxique et affichage des erreurs

Prise en charge des thèmes

  • Mode nuit par défaut, prise en charge des couleurs et styles personnalisés
  • Prise en charge des polices personnalisées

Importation et exportation de données

  • Fichiers Base64, patchs IPS et IPS32, rapports Markdown

Inspecteur de données

  • Interprétation des données dans divers types
  • Copie et modification des octets
  • Prise en charge de l’ajout de nouveaux types de données

Préprocesseur de données basé sur des nœuds

  • Modification, déchiffrement et décodage des données
  • Prise en charge de l’ajout de nœuds personnalisés

Chargement de diverses sources de données

  • Fichiers locaux, disque brut, serveur GDB, données Intel Hex et Motorola SREC, mémoire de processus

Recherche de données

  • Recherche dans tout le fichier ou dans la zone sélectionnée
  • Extraction de chaînes, recherche de séquences, recherche par expression régulière, motifs binaires, recherche de valeurs numériques

Prise en charge du hachage des données

  • Utilisation de divers algorithmes
  • Hachage de zones spécifiques et de chaînes arbitraires

Prise en charge du diff

  • Comparaison de différentes sources de données
  • Mise en surbrillance des différences et affichage en tableau

Désassembleur intégré

  • Prise en charge de toutes les architectures supportées par Capstone

Signets

  • Prise en charge de noms et couleurs personnalisés
  • Mise en surbrillance des zones de signet et navigation vers les signets

Analyseur de données et outils de visualisation

  • Parseur de fichiers basé sur la magie des fichiers et base de données de types MIME
  • Graphique de distribution des types d’octets, graphique d’entropie

Prise en charge des règles YARA

  • Analyse des fichiers avec les règles YARA officielles
  • Mise en surbrillance des correspondances et navigation vers les correspondances

Outils utiles

  • Divers démangleurs, table ASCII, remplaceur d’expressions régulières, évaluateur d’expressions mathématiques, calculatrice graphique, sélecteur de couleurs, convertisseur de bases, byte swapper, calculateur de permissions UNIX, recherche de définitions de termes sur Wikipedia, utilitaires de fichiers, visualiseur de flottants IEEE754, client/serveur TCP, calculateur de l’algorithme d’Euclide

Mises à jour de contenu intégrées

  • Téléchargement de fichiers depuis la base de données

Interface moderne

  • Prise en charge de plusieurs espaces de travail et de dispositions personnalisées
  • Fenêtres détachables

Facile à prendre en main

  • Prise en charge de nombreuses langues, mode simplifié pour les débutants, documentation étendue, nombreux fichiers d’exemple dans la base de données, tutoriel interactif

Langage de motifs

  • Définition de structures et de types de données avec une syntaxe proche du C
  • Analyse et mise en surbrillance du contenu des fichiers

Base de données

  • Motifs de formats, bibliothèques, fichiers magiques et constantes

Exigences

  • GPU requis, avec prise en charge d’OpenGL 3.0
  • Compatible avec Windows, macOS et Linux

Installation

  • Voir le guide d’installation

Compilation

  • GCC ou Clang requis, avec prise en charge de C++23 ou supérieur

Contribution

  • Voir le guide de contribution

Développement de plugins

  • Utiliser le projet modèle

Crédits

  • Remerciements aux principaux contributeurs et aux bibliothèques utilisées

Licence

  • Majoritairement sous licence GPLv2-only, avec certaines parties sous licence LGPLv2.1

L’avis de GN⁺

  • ImHex est un outil très utile pour les travaux de reverse engineering et de programmation. Il se distingue particulièrement par ses capacités de visualisation et d’analyse de divers types de données.
  • Il propose des fonctions conviviales comme le mode nuit, qui peuvent réduire la fatigue visuelle lors de longues sessions de travail.
  • Grâce à sa compatibilité avec diverses sources de données, il peut être utilisé dans de nombreux environnements.
  • Parmi les autres outils offrant des fonctions similaires, on peut citer HxD et 010 Editor.
  • Lorsqu’on adopte une nouvelle technologie ou un projet open source, il faut examiner attentivement ses avantages et ses inconvénients. Dans le cas d’ImHex, la prise en charge du GPU est indispensable.

1 commentaires

 
GN⁺ 2024-06-30
Avis Hacker News
  • ImHex est le meilleur éditeur hexadécimal que j’aie utilisé jusqu’à présent

    • La fonctionnalité de modèles de fichiers met automatiquement en évidence les sections des types de fichiers connus
    • Il interprète et affiche simultanément les octets sélectionnés selon différents types de données
    • Il est bien plus rapide que d’autres éditeurs avec de gros fichiers
    • Son défaut, c’est que l’interface imgui a parfois des bugs
  • Je me demande s’il existe un moyen pour cet éditeur d’afficher les octets ASCII avec les glyphes CP437

    • Je lisais les fichiers binaires de cette façon sous DOS, et je peux lire les glyphes plus vite que les valeurs hexadécimales
    • Afficher les caractères non imprimables par des points ne donne pas beaucoup d’informations
  • J’ai essayé ImHex, mais c’était trop complexe

    • Sur macOS, je préfère toujours Hex Fiend
    • C’est simple, rapide, et il offre les fonctionnalités que je veux
    • Sous Windows, je n’ai toujours pas trouvé l’éditeur hexadécimal « simple » parfait
  • Le langage de motifs est très utile et aide énormément à l’apprentissage

    • J’adore ce programme
  • ImHex nécessite généralement un GPU compatible OpenGL 3.0

    • Je me demande pourquoi un éditeur hexadécimal a besoin d’OpenGL
    • Je me demande s’il y a une vraie raison à cela ou si c’est juste pour le style
  • ImHex a l’air bien

    • J’utilise la recherche avec jokers de 010 Editor, mais ImHex propose aussi cette fonctionnalité
    • Comme il offre davantage de fonctions, je vais l’essayer
  • J’aime beaucoup ce domaine de la culture informatique

    • L’ingénierie inverse, l’écriture de modules noyau, comprendre comment les choses fonctionnent et leur faire accomplir ce pour quoi elles n’ont pas été conçues
    • Mais il existe peu de moyens de faire cela légalement, et cela demande beaucoup de temps ainsi que l’aide de collègues
  • Ce projet est excellent

    • Je me suis beaucoup amusé à manipuler la ROM d’une montre connectée Philips
    • Il dispose d’un DSL intégré proche de Rust, très léger même sans gestion de mémoire
    • Cela permet de visualiser et d’extraire des données structurées à partir de flux binaires
    • Il y a aussi un éditeur visuel qui permet de faire des calculs simples sans code
    • Quand je l’ai essayé, cela donnait une impression encore un peu inachevée
    • Écrire du code en DSL était plus intuitif et plus simple
  • Pour l’instant, je vais continuer à utiliser 010 Editor

    • C’est l’éditeur hexadécimal le plus impressionnant que j’aie utilisé jusqu’à présent
    • Je n’aime pas le framework GUI utilisé dans ce nouveau projet (Dear ImGui)
    • Il est destiné aux petits écrans et aux systèmes embarqués sans gestionnaire de fenêtres, et dans un environnement de bureau il offre une expérience maladroite faute d’intégration à l’interface
  • Ce projet a l’air plutôt cool

    • Je me demande si développer un éditeur hexadécimal comme projet est une bonne idée
    • Un éditeur hexadécimal simple n’est pas difficile, mais il y a beaucoup de possibilités d’exercice, comme l’analyse des formats de fichiers
    • Il y a aussi beaucoup de place pour développer des outils d’ingénierie inverse