4 Punkte von GN⁺ 2024-06-30 | 1 Kommentare | Auf WhatsApp teilen

Ein Hex-Editor für Reverse Engineers, Programmierer und Menschen, die um 3 Uhr morgens arbeiten

Unterstützung

  • Unterstützung über GitHub Sponsors, Patreon und PayPal möglich

Screenshots

  • Zusätzliche Screenshots verfügbar

Funktionen

Umfangreiche Hex-Ansicht

  • Byte-Patching, Patch-Verwaltung, unbegrenztes Undo/Redo
  • Bytes in verschiedenen Formaten kopieren
  • Einfache String- und Hex-Suche
  • Zu Anfang, Ende oder aktueller Cursor-Position springen
  • Vielfältige Hervorhebungen
  • Anzeige in verschiedenen Datentypen
  • Daten mit ASCII und benutzerdefinierten Encodings dekodieren
  • Seitendaten anzeigen

C++-ähnliche Pattern-Sprache

  • Automatisches Laden basierend auf MIME-Typen und Magic Values
  • Unterstützung für die Visualisierung verschiedener Datentypen
  • Nützliche Fehlermeldungen, Syntax-Highlighting und Fehleranzeige

Theme-Unterstützung

  • Nachtmodus standardmäßig aktiviert, Unterstützung für benutzerdefinierte Farben und Stile
  • Unterstützung für benutzerdefinierte Schriftarten

Daten importieren und exportieren

  • Base64-Dateien, IPS- und IPS32-Patches, Markdown-Berichte

Dateninspektor

  • Daten als verschiedene Typen interpretieren
  • Bytes kopieren und bearbeiten
  • Unterstützung zum Hinzufügen neuer Datentypen

Node-basierter Daten-Preprozessor

  • Daten verändern, entschlüsseln und dekodieren
  • Unterstützung zum Hinzufügen benutzerdefinierter Nodes

Laden verschiedener Datenquellen

  • Lokale Dateien, Raw-Datenträger, GDB-Server, Intel-Hex- und Motorola-SREC-Daten, Prozessspeicher

Datensuche

  • Gesamte Datei oder ausgewählten Bereich durchsuchen
  • String-Extraktion, Sequenzsuche, Suche mit regulären Ausdrücken, binäre Pattern, Suche nach numerischen Werten

Unterstützung für Data-Hashing

  • Verschiedene Algorithmen verfügbar
  • Hashing bestimmter Bereiche und beliebiger Strings

Diffing-Unterstützung

  • Vergleich verschiedener Datenquellen
  • Hervorhebung von Unterschieden und Tabellenansicht

Integrierter Disassembler

  • Unterstützung für alle von Capstone unterstützten Architekturen

Lesezeichen

  • Unterstützung für benutzerdefinierte Namen und Farben
  • Hervorhebung von Lesezeichenbereichen und Sprung zu Lesezeichen

Datenanalysator und Visualisierungstools

  • Dateiparser auf Basis von File Magic und MIME-Typ-Datenbank
  • Diagramme zur Byte-Typ-Verteilung, Entropie-Diagramme

Unterstützung für YARA-Regeln

  • Dateien mit offiziellen YARA-Regeln scannen
  • Hervorhebung von Treffern und Sprung zu Treffern

Nützliche Tools

  • Verschiedene Demangler, ASCII-Tabelle, RegEx-Ersetzer, Auswerter für mathematische Ausdrücke, Grafikrechner, Farbwähler, Basis-Konverter, Byte-Swapper, UNIX-Berechtigungsrechner, Nachschlagen von Begriffserklärungen auf Wikipedia, Datei-Utilities, IEEE754-Float-Visualizer, TCP-Client/Server, Rechner für den euklidischen Algorithmus

Integrierte Content-Updates

  • Dateien aus der Datenbank herunterladen

Moderne Oberfläche

  • Unterstützung für mehrere Workspaces und benutzerdefinierte Layouts
  • Abdockbare Fenster

Einfacher Einstieg

  • Unterstützung für verschiedene Sprachen, vereinfachter Modus für Einsteiger, umfangreiche Dokumentation, viele Beispieldateien in der Datenbank, interaktive Tutorials

Pattern-Sprache

  • Strukturen und Datentypen mit C-ähnlicher Syntax definieren
  • Dateiinhalte parsen und hervorheben

Datenbank

  • Format-Patterns, Bibliotheken, Magic- und Konstantendateien

Anforderungen

  • GPU erforderlich, Unterstützung für OpenGL 3.0 notwendig
  • Unterstützung für Windows, macOS und Linux

Installation

  • Siehe Installationsanleitung

Kompilierung

  • GCC oder Clang erforderlich, Unterstützung für C++23 oder höher

Mitwirken

  • Siehe Leitfaden für Beiträge

Plugin-Entwicklung

  • Template-Projekt verwenden

Danksagungen

  • Dank an die wichtigsten Mitwirkenden und die verwendeten Bibliotheken

Lizenz

  • Größtenteils GPLv2-only-Lizenz, teilweise LGPLv2.1-Lizenz

Meinung von GN⁺

  • ImHex ist ein sehr nützliches Tool für Reverse Engineering und Programmierarbeit. Besonders stark sind die Funktionen zur Visualisierung und Analyse verschiedener Datentypen.
  • Benutzerfreundliche Funktionen wie der Nachtmodus helfen dabei, die Augen auch bei langen Arbeitssitzungen zu entlasten.
  • Dank der Kompatibilität mit verschiedenen Datenquellen lässt sich das Tool in vielen Umgebungen einsetzen.
  • Andere Tools mit ähnlichem Funktionsumfang sind etwa HxD und 010 Editor.
  • Bei der Einführung neuer Technologien oder Open Source sollte man die Vor- und Nachteile sorgfältig abwägen. Im Fall von ImHex ist zum Beispiel GPU-Unterstützung zwingend erforderlich.

1 Kommentare

 
GN⁺ 2024-06-30
Hacker-News-Kommentare
  • ImHex ist der beste Hex-Editor, den ich bisher benutzt habe

    • Die Dateivorlagen-Funktion hebt Abschnitte bekannter Dateitypen automatisch hervor
    • Zeigt ausgewählte Bytes an, indem sie gleichzeitig als verschiedene Datentypen interpretiert werden
    • Bei großen Dateien viel schneller als andere Editoren
    • Ein Nachteil ist, dass die imgui-Oberfläche gelegentlich Bugs hat
  • Ich frage mich, ob es eine Möglichkeit gibt, wie dieser Editor ASCII-Bytes als CP437-Glyphen anzeigen kann

    • Unter DOS habe ich Binärdateien auf diese Weise gelesen und kann Glyphen schneller lesen als Hex-Werte
    • Nicht druckbare Zeichen als Punkte darzustellen, liefert nicht viele Informationen
  • Ich habe ImHex ausprobiert, aber es war mir zu komplex

    • Unter macOS bevorzuge ich weiterhin Hex Fiend
    • Es ist einfach, schnell und bietet die Funktionen, die ich brauche
    • Unter Windows habe ich noch keinen wirklich perfekten „einfachen“ Hex-Editor gefunden
  • Die Pattern-Sprache ist sehr nützlich und eine große Hilfe beim Lernen

    • Ich liebe dieses Programm
  • ImHex benötigt im Allgemeinen eine GPU mit OpenGL-3.0-Unterstützung

    • Ich frage mich, warum ein Hex-Editor überhaupt OpenGL braucht
    • Ich frage mich, ob es dafür einen Grund gibt oder ob es nur der Optik dient
  • ImHex sieht gut aus

    • Ich nutze die Wildcard-Suche von 010 Editor, aber ImHex bietet diese Funktion ebenfalls
    • Da es mehr Funktionen bietet, werde ich es testen
  • Ich mag diesen Bereich der Computerkultur sehr

    • Reverse Engineering, Kernel-Module schreiben, herausfinden, wie Dinge funktionieren, und Funktionen ausführen, für die sie nicht entworfen wurden
    • Allerdings gibt es nur selten legale Möglichkeiten, das zu tun, und es erfordert viel Zeit sowie die Hilfe von Kollegen
  • Dieses Projekt ist wirklich großartig

    • Ich hatte viel Spaß dabei, das ROM einer Philips-Smartwatch zu manipulieren
    • Es hat ein eingebautes DSL ähnlich wie Rust und ist dadurch auch ohne Speicherverwaltung sehr leichtgewichtig
    • Damit kann man strukturierte Daten aus Binärstreams visualisieren und extrahieren
    • Es gibt auch einen visuellen Editor, mit dem man einfache Berechnungen ohne Code durchführen kann
    • Als ich es ausprobiert habe, wirkte es allerdings etwas unfertig
    • Code im DSL zu schreiben, war intuitiver und einfacher
  • Vorerst werde ich weiter 010 Editor verwenden

    • Es ist der beeindruckendste Hex-Editor, den ich bisher benutzt habe
    • Ich mag das GUI-Framework (Dear ImGui), das in neuen Projekten verwendet wird, nicht
    • Es ist für Embedded-Systeme mit kleinen Bildschirmen und ohne Fenstermanager gedacht, und in Desktop-Umgebungen wirkt die Erfahrung wegen der fehlenden UI-Integration unbeholfen
  • Dieses Projekt sieht ziemlich cool aus

    • Ich frage mich, ob es eine gute Idee ist, einen Hex-Editor als Projekt zu entwickeln
    • Ein einfacher Hex-Editor ist nicht allzu schwer, aber es gibt viel Spielraum zum Üben, etwa beim Parsen von Dateiformaten
    • Es gibt auch reichlich Raum für die Entwicklung von Reverse-Engineering-Tools