ImHex: a hex editor for reverse engineers
ImHex is worth installing the moment you need to make sense of a binary file that no tool has a plugin for. The pattern language is the real payoff: write a C-like struct once and reuse it across every file that shares the format, instead of hand-counting offsets in a hex grid. Reach for it if you do reverse engineering, forensics, or file-format archaeology regularly; skip it if you only need to eyeball a hex dump occasionally.
What is ImHex?
ImHex is a free, open source hex editor built for reverse engineers, programmers, and anyone parsing binary files at 3 AM. It overlays structure on raw bytes using a custom C-like pattern language, turning a file format into named fields instead of a wall of hex. It also bundles a Capstone-based disassembler and YARA rule scanning in one dark-mode interface, and runs natively on Windows, macOS, and Linux.
Key features of ImHex
- ✓A custom C-like pattern language that parses and highlights a file's structure — arrays, pointers, structs, unions, enums, bitfields, both endiannesses.
- ✓An integrated disassembler built on Capstone, covering ARM32/64, MIPS, x86, PowerPC, SPARC, RISC-V, WebAssembly, and more.
- ✓YARA rule scanning highlights matches directly in the hex view.
- ✓A data inspector that reinterprets the same bytes as integers, floats, LEB128, GUIDs, or timestamps, with live editing.
- ✓A node-based data preprocessor for decrypting or decoding bytes before they hit the hex view, without touching the source file.
- ✓Loads data from local files, raw disks, GDB server memory, running process memory, and remote files over SSH/SFTP.
- ✓Hashing support for a long list of algorithms — MD5, the SHA family, CRC variants, Murmur, XXHash, Blake2, and more.
- ✓A built-in content updater that pulls pattern files, magic files, custom encodings, and themes from the ImHex-Patterns database.
Installing ImHex
The README points to a separate INSTALL.md guide rather than listing package-manager commands inline, so exact install commands aren't clearly documented in the repo's main README. What is documented: Windows 7 or higher is supported (10/11 recommended); macOS needs version 15 (Sequoia) or higher for the release binaries, and since the build isn't signed you'll need to manually allow it in Security & Privacy settings; Linux has official releases for Ubuntu, Debian, Fedora, RHEL/AlmaLinux, and Arch, with AppImage, Flatpak, and Snap covering other distros. ImHex needs a GPU with OpenGL 3.0 support; releases with a -NoGPU suffix are software-rendered and don't need one, though they're slower. Minimum footprint is about 50MiB of RAM and 100MiB of storage.
Strengths
- ✓The pattern language turns one-off manual byte-counting into a reusable, shareable file-format definition.
- ✓Ships as one binary with a disassembler, hex view, hashing, diffing, and YARA scanning built in — no juggling separate tools.
- ✓The UI defaults to a dark theme instead of a stock light one — a deliberate call-out in the README for long, late-night editing sessions — with a light theme available if you want it.
- ✓Cross-platform with official builds for Windows, macOS, and Linux, plus AppImage/Flatpak/Snap coverage for other distros.
- ✓A built-in content updater pulls community pattern files, magic files, and themes without leaving the app.
Limitations of ImHex
- △Needs a GPU with OpenGL 3.0 support for the normal build; the -NoGPU fallback exists but the README says it's noticeably slower.
- △macOS release binaries target macOS 15 (Sequoia) and up, aren't code-signed, and require manually allowing the app in Security & Privacy — older macOS means compiling from source.
- △The pattern language is its own C-like syntax to learn before you get real value out of structural parsing, not a drop-in for someone who just wants to poke at bytes.
- △Building from source requires GCC or Clang with C++23 support; MSVC and AppleClang are explicitly not supported, which narrows the toolchain for Windows contributors.
Alternatives to ImHex
Frequently asked questions
ImHex is free and open source, released under the GPL-2.0 license — the plugin-facing libimhex and UI plugin library use LGPLv2.1 instead, so proprietary plugins are allowed.
ImHex runs natively on Windows (7 and up, 10/11 recommended), macOS (15 Sequoia and up for release binaries), and Linux, with official builds for Ubuntu, Debian, Fedora, RHEL/AlmaLinux, and Arch, plus AppImage, Flatpak, and Snap for other distros.
ImHex's pattern language is a custom C-like syntax for describing a file's structure — arrays, pointers, structs, unions, enums, and bitfields with either endianness. The source and docs live in the separate PatternLanguage repo, and example files are collected in the ImHex-Patterns database.
ImHex includes an integrated disassembler built on Capstone, covering architectures like ARM32/64, MIPS, x86, PowerPC, SPARC, RISC-V, and WebAssembly, plus support for writing custom disassemblers for other architectures.
ImHex generally requires a GPU with OpenGL 3.0 support, but releases with the -NoGPU suffix are software-rendered and don't need one — the README notes they can be a lot slower than GPU-accelerated builds.
ImHex doesn't hard-code a fixed format list — its pattern language and file-magic/MIME detection let it auto-load the right pattern file for a format, with community-contributed patterns collected in the separate ImHex-Patterns repository.
The problem it solves
Reading raw bytes in a hex grid tells you nothing about what they mean until you count offsets by hand or bounce between the hex view, a separate disassembler, and a malware-scanning tool. ImHex folds structure definition, disassembly, and YARA scanning into one editor: you write a pattern file once, describing a header as a struct with named fields, and ImHex applies it automatically based on the file's magic bytes, instead of you re-deriving the layout every time you open a similar file.
Best use cases
- •Reverse engineering an unknown binary or firmware dump by defining its structure with a pattern file instead of guessing offsets by eye.
- •Digital forensics work — carving strings, hashing regions of evidence, and diffing two versions of a file.
- •Parsing proprietary or undocumented file formats and sharing the resulting pattern file with the ImHex-Patterns database.
- •Quick malware triage with YARA rules and the integrated disassembler before reaching for a full disassembler suite.
- •Late-night hex editing where a bright default UI would be the real usability problem.
Who should try it — and who should skip
Try ImHex if you regularly open binary files without a matching viewer — firmware dumps, game saves, unknown container formats — and want to define their structure once instead of re-deriving it by eye each time. Skip it if you mainly need to view or lightly edit hex without ever writing a pattern, since a minimal hex viewer opens faster and asks nothing of you. Malware analysts who already live in Ghidra or radare2 can still use ImHex as a fast first-pass triage tool before switching to a full decompiler.
Related repositories
Still deciding about ImHex?
One click hands the question to an AI along with this page — see what it says about ImHex.
