Ein HEX -Redakteur für Reverse -Ingenieure, Programmierer und Menschen, die ihre Retinas bei der Arbeit um 3 Uhr morgens schätzen.
/ˈꞮmhɛks/
Unterstützung
Wenn Sie meine Arbeit mögen, sollten Sie mich bei Github -Sponsoren, Patreon oder PayPal unterstützen. Vielen Dank!
Screenshots
Weitere Screenshots
Merkmale
Merkmale Sechskantansicht
- Byte -Patching
- Patch -Management
- Unendlich rückgängig gemacht/redo
- "Bytes als ..." kopieren
- Bytes
- Sechskantschnur
- C, C ++, C#, Rost, Python, Java & Javascript Array
- Ascii-Art-Hex-Ansicht
- HTML SELBENDE DIV
- Einfache String- und Hex -Suche
- Goto von Start, Ende und aktueller Cursorposition
- Buntes Hervorhebung
- Konfigurierbare Vordergrund -Hervorhebungsregeln
- Hintergrund -Hervorhebungen mit Mustern, Ergebnissen und Lesezeichen finden Sie
- Anzeigen von Daten als Liste vieler verschiedener Typen
- Hexadezimalzahlen (8, 16, 32, 64 Bit)
- Unterzeichnete und nicht signierte Dezimalzahlen (8, 16, 32, 64 Bit)
- Floats (16, 32, 64 Bit)
- RGBA8 Farben
- Hexii
- Binär
- Dekodieren von Daten als ASCII und benutzerdefinierte Encodings
- Integrierte Unterstützung für UTF-8, UTF-16, ShiftJIS, die meisten Windows-Codierungen und viele mehr
- PAGED -Datenansicht
Benutzerdefinierte c ++-wie Mustersprache zum Parsen zum Hervorheben des Inhalts einer Datei
- Automatisches Laden basierend auf MIME -Typen und magischen Werten
- Arrays, Zeiger, Strukturen, Gewerkschaften, Aufzüge, Bitfields, Namespaces, Little und Big Endian Support, Conditional und vieles mehr!
- Nützliche Fehlermeldungen, Syntax -Hervorhebungen und Fehlermarkierung
- Unterstützung für die Visualisierung vieler verschiedener Arten von Daten
- Bilder
- Audio
- 3D -Modelle
- Koordinaten
- Zeitstempel
Themenunterstützung
- Verbrennt Ihre Netzhaut nicht in der Nacht in spätabendlichen Sitzungen
- Der dunkle Modus standardmäßig, aber auch ein Lichtmodus ist verfügbar
- Anpassbare Farben und Stile für alle Benutzeroberflächenelemente durch gemeinsambare Themendateien
- Unterstützung für benutzerdefinierte Schriftarten
Daten importieren und exportieren
- Base64 -Dateien
- IPS und IPS32 -Patches
- Markdown -Berichte
Dateninspektor
- Den Daten als viele verschiedene Typen mit Endianess, Dezimal-, Hexadezimal- und Oktalunterstützung sowie Bitinversion interpretieren
- Nicht signierte und unterschriebene Ganzzahlen (8, 16, 24, 32, 48, 64 Bit)
- Floats (16, 32, 64 Bit)
- Signiert und nicht signiert leb128
- ASCII, breite und UTF-8 Zeichen und Saiten
- TIME32_T, TIME64_T, DOS -Datum und Uhrzeit
- Guids
- Farben RGBA8 und RGB65
- Kopieren und Modifizieren von Bytes durch den Inspektor
- Hinzufügen neuer Datentypen über die Mustersprache
- Unterstützung für das Verstecken von Zeilen, die nicht verwendet werden
Node-basierte Daten vor dem Prozessor
- Ändern, entschlüsseln und dekodieren Sie Daten, bevor sie im HEX -Editor angezeigt werden
- Daten ändern, ohne die zugrunde liegende Quelle zu berühren
- Unterstützung beim Hinzufügen benutzerdefinierter Knoten
Laden von Daten aus vielen verschiedenen Datenquellen
- Lokale Dateien
- Unterstützung für riesige Dateien mit schnellem und effizientem Laden
- Rohe Scheiben
- Laden von Daten aus Rohdisks und Partitionen
- GDB -Server
- Greifen Sie über GDB auf den RAM eines Laufprozesses oder eingebettete Geräte zu
- Intel Hex und Motorola SREC -Daten
- Prozessspeicher
- Überprüfen Sie den gesamten Adressraum eines Laufprozesses
Datensuche
- Unterstützung bei der Suche nach der gesamten Datei oder nur einer Auswahl
- String -Extraktion
- Option zum Angeben von Mindestlängen und Zeichen (unteren Fall, oberer Fall, Ziffern, Symbole)
- Option zur Angabe von Codierung (ASCII, UTF-8, UTF-16 Big und Little Endian)
- Sequenzsuche
- Suchen Sie nach einer Folge von Bytes oder Zeichen
- Option, den Charakterfall zu ignorieren
- Regex -Suche
- Suchen Sie nach Saiten mit regulären Ausdrücken
- Binärmuster
- Suchen Sie nach Sequenzen von Bytes mit optionalen Wildcards
- Numerische Wertsuche
- Suchen Sie nach signierten/nicht signierten Ganzzahlen und Schwimmern
- Suchen Sie nach Wertenbereichen
- Option zur Angabe von Größe und Endiangess
- Option, unverzehrte Werte zu ignorieren
Datenhashing -Unterstützung
- Viele verschiedene Algorithmen verfügbar
- CRC8, CRC16 und CRC32 mit benutzerdefinierten Anfangswerten und Polynomen
- Viele Standardpolynome verfügbar
- MD5
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
- Adler32
- AP
- BKDR
- Bernstein, Bernstein1
- Dek, DJB, ELF, FNV1, FNV1A, JS, PJW, RS, SDBM
- OneatTime, rotieren, Shiftandxor, superschnell
- MURMUR2_32, MURMURHASH3_X86_32, MURMURHASH3_X86_128, MURMURHASH3_X64_128
- SIPHASH64, SIPHASH128
- Xxhash32, xxhash64
- Tiger, Tiger2
- Blake2b, Blake2s
- Hashing bestimmter Regionen der geladenen Daten
- Hashing von willkürlichen Saiten
Differenzunterstützung
- Vergleichen Sie Daten verschiedener Datenquellen
- Unterschiedsdifferenzierung
- Tabellenansicht der Unterschiede
Integrierter Disassembler
- Unterstützung für alle von Capstone unterstützten Architekturen
- ARM32 (Arm, Daumen, Cortex-M, Aarch32)
- ARM64
- MIPS (MIPS32, MIPS64, MIPS32R6, Micro)
- x86 (16-Bit, 32-Bit, 64-Bit)
- PowerPC (32-Bit, 64-Bit)
- Sparc
- IBM Systemz
- xcore
- M68K
- TMS320C64X
- M680X
- Ethereum
- RISC-V
- WebAssembly
- MOS65XX
- Berkeley Paketfilter
Lesezeichen
- Unterstützung für Lesezeichen mit benutzerdefinierten Namen und Farben
- Hervorhebung der von einem Lesezeichen versehenen Region im HEX -Editor
- Springe zu Lesezeichen
- Öffnen Sie den Inhalt des Lesezeichens in einer neuen Registerkarte
- Fügen Sie Kommentare zu Lesezeichen hinzu
Merkmaler Datenanalysator und Visualizer
- Datei Magic-basierte Datei-Parser- und MIME-TYP-Datenbank
- Byte Typ -Verteilungsgrafik
- Entropie -Diagramm
- Höchste und durchschnittliche Entropie
- Verschlüsselte / komprimierte Dateierkennung
- Digram- und Schichtverteilungsdiagramme
Yara -Regelunterstützung
- Scannen Sie eine Datei nach Sicherheitslücken mit offiziellen YARA -Regeln
- Highlight -Übereinstimmungen im Hex -Editor
- Springen zu Spielen
- Wenden Sie mehrere Regeln gleichzeitig an
Hilfreiche Werkzeuge
- Itanium, MSVC, Rost und D-Lang Demangler basierend auf LLVM
- ASCII -Tabelle
- Regex -Austausch
- Mathematischer Expressionsbewerter (Taschenrechner)
- Grafikrechner
- Hexadezimalfarber -Picker mit Unterstützung für viele verschiedene Formate
- Basiskonverter
- Byte -Swapper
- UNIX -Berechtigungsrechner
- Wikipedia Term Definition Finder
- Datei -Dienstprogramme
- Dateisplitter
- Datei -Kombinierer
- Datei Shredder
- IEEE754 Float Visualizer
- Aufteilung nach Invariante Multiplikationsrechner
- TCP -Client/Server
- Euklidischer Algorithmusrechner
Integriertes Inhalts-Updater
- Laden Sie alle Dateien in der Datenbank direkt aus IMHEX herunter
- Musterdateien zur Dekodierung verschiedener Dateiformate
- Bibliotheken für die Mustersprache
- Magische Dateien zur Erkennung von Dateitypen
- Benutzerdefinierte Datenprozessorknoten
- Benutzerdefinierte Codierungen
- Benutzerdefinierte Themen
- Yara regiert
Moderne Schnittstelle
- Unterstützung für mehrere Arbeitsbereiche
- Unterstützung für benutzerdefinierte Layouts
- Abnehmbare Fenster
Einfach loslegen
- Unterstützung für viele verschiedene Sprachen
- Vereinfachter Modus für Anfänger
- Umfangreiche Dokumentation
- In der Datenbank sind viele Beispieldateien verfügbar
- Erfolge führen Sie durch die Merkmale von Imhex
- Interaktive Tutorials
Mustersprache
Die Mustersprache ist die vollständig benutzerdefinierte Programmiersprache, die für IMHEX entwickelt wurde. Sie können Strukturen und Datentypen in einer C-ähnlichen Syntax definieren und dann den Inhalt einer Datei analysieren und hervorheben.
- Quellcode: Link
- Dokumentation: Link
Datenbank
Für Formatmuster, Bibliotheken, magische und konstante Dateien finden Sie das IMHEX-Patterns-Repository.
Fühlen Sie sich auch frei, Ihre eigenen Dateien dort zu erhalten!
Anforderungen
Um IMHEX zu verwenden, müssen die folgenden minimalen Systemanforderungen erfüllt werden.
Wichtig
IMHEX benötigt eine GPU mit OpenGL 3.0 -Unterstützung im Allgemeinen. Es gibt Veröffentlichungen (mit dem -NoGPU
-Suffix), die Software sind und keine GPU benötigen. Diese können jedoch viel langsamer sein als die GPU -beschleunigten Versionen.
Wenn möglich, lassen Sie IMHEX die dedizierte GPU in Ihrem System anstelle der integrierten Verwendung verwenden. IMHEX wird normalerweise auch mit integrierten GPUs gut ausgeführt, aber bestimmte Intel HD -GPU -Treiber an Fenstern sind bekanntermaßen grafische Artefakte verursachen.
- OS :
- Windows : Windows 7 oder höher (Windows 10/11 empfohlen)
- macOS : macOS 12.1 (Monterey) oder höher,
- Niedrigere Versionen werden unterstützt, aber Sie müssen Imhex selbst kompilieren
- Linux : "Modern" Linux. In den folgenden Verteilungen stehen offizielle Veröffentlichungen zur Verfügung. Andere Distributionen werden durch die Appimage- und Flatpak -Veröffentlichungen unterstützt.
- Ubuntu und Debian
- Fedora
- Rhel/Almalinux
- Arch Linux
- Grundsätzlich funktioniert jede andere Distribution auch beim Zusammenstellen von Imhex aus Quellen.
- CPU : x86_64 (64 Bit)
- GPU : OpenGL 3.0 oder höher
- Integrierte Intel HD -IGPUs werden unterstützt, aber es ist bekannt, dass bestimmte Treiber verschiedene grafische Artefakte verursachen, insbesondere unter Fenstern. Verwenden Sie auf eigenes Risiko.
- Falls Sie keine GPU zur Verfügung haben
- RAM : 256 MB, können mehr für eine kompliziertere Analyse erforderlich sein
- Speicherung : 150 MB
Installation
Informationen zur Installation von IMHEX finden Sie in der Installationshandbuch
Kompilieren
Um IMHEX auf einer beliebigen Plattform zu kompilieren, ist GCC (oder Clang) mit einer Version erforderlich, die C ++ 23 oder höher unterstützt. Auf macOS muss Clang auch einen OBJC -Code erstellen. Alle Veröffentlichungen werden mit dem neuesten verfügbaren GCC erstellt.
Notiz
Viele Abhängigkeiten werden unter Verwendung von Submodules in das Repository gebündelt. Stellen Sie daher sicher, dass Sie die Option --recurse-submodules
Option klonen. Alle Abhängigkeiten, die nicht gebündelt sind, können mit den im Ordner /dist
-Ordner gefundenen Abhängigkeits -Installationskripten installiert werden.
Weitere Informationen finden Sie im Kompilierhandbuch.
Beitragen
Siehe Beitrag
Pluginentwicklung
Um Plugins für IMHEX zu entwickeln, verwenden Sie das folgende Vorlagenprojekt, um loszulegen. Sie haben dann Zugriff auf die Gesamtheit von Libimhex sowie auf die IMHEX -API und die Inhaltsregistrierung, um mit IMHEX zu interagieren oder neue Inhalte hinzuzufügen.
Credits
Mitwirkende
- Itrooz, um IMHEX in das Web zu bringen, sowie Hunderte von Beiträgen in jedem Teil des Projekts
- Jumanji144 für enorme Beiträge zur Mustersprache und zur Infrastruktur von IMHEX
- Mary für ihre immense Hilfe, um IMHEX auf macos zu portieren und während der Entwicklung zu helfen
- ROBLABLA zum Hinzufügen von MSI -Installateurunterstützung zu IMHEX
- Mailaender, um IMHEX auf Flathub zu bringen
- Alle anderen, die Probleme in Bezug auf Zwietracht oder GitHub gemeldet haben, mit denen ich großartige Gespräche hatte :)
Abhängigkeiten
- Vielen Dank an Ocornut für ihre erstaunliche liebe Imgui, die zum Aufbau der gesamten Schnittstelle verwendet wird
- Vielen Dank an Epezent für Improtes, das verwendet wird, um Daten an verschiedenen Stellen zu zeichnen
- Vielen Dank an Nelarius für Imnodes, die als Basis für den Datenprozessor verwendet werden
- Vielen Dank an Balazsjako für Imguicolortextedit, das für die Mustersprachensyntax -Hervorhebung verwendet wird
- Vielen Dank an Nlohmann für ihre JSON -Bibliothek, die für Konfigurationsdateien verwendet wird
- Vielen Dank an Vitaut für ihre libfmt -Bibliothek, die Formatierung und Anmeldung so viel besser macht
- Vielen Dank an BTZY für native filedialog-erweiterte und deren großartige Unterstützung, die zum Umgang mit Dateidialogen auf allen Plattformen verwendet wird
- Vielen Dank an Danyspin97 für XDGPP, mit dem Ordnerpfade unter Linux verarbeitet werden
- Vielen Dank an Aquynh für Capstone, die die Basis des Demontagefensters ist
- Vielen Dank an RXI für Microtar, das zum Extrahieren von heruntergeladenen Store -Assets verwendet wird
- Vielen Dank an Virustotal für Yara, die vom Yara -Plugin verwendet wird
- Vielen Dank an Martinsos für Edlib, die für die Sequenzsuche in der Differenzansicht verwendet werden
- Vielen Dank an Ron4fun für Hashlibplus, der jeden Hashing -Algorithmus unter der Sonne implementiert
- Vielen Dank an Mackron für Miniaudio, mit dem Audiodateien abgespielt wurden
- Vielen Dank an alle anderen Gruppen und Organisationen, deren Bibliotheken in IMHEX verwendet werden
Lizenz
Der größte Teil von IMHEX ist unter der nur GPLV2-Lizenz. Bemerkenswerte Ausnahmen davon sind die folgenden Teile, die unter der LGPLV2.1 -Lizenz stehen:
- /lib/libimhex : Die Bibliothek, mit der Plugins mit IMHEX interagieren können.
- /Plugins/UI : Die UI -Plugin -Bibliothek, die einige gemeinsame UI -Elemente enthält, die von anderen Plugins verwendet werden können
Der Grund dafür ist, dass proprietäre Plugins für IMHEX entwickelt werden können.