TopGit
GitHub Repo Review

ImHex: a hex editor for reverse engineers

WerWolv/ImHex
ITopGit review image for WerWolv/ImHex
Review by Topgit.dev for WerWolv/ImHex, with GitHub repository stats and README context.
Quick verdict

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.

Stars
★ 55.3k
Forks
⑂ 2.5k
Contributors
👥 182
Language
C++
License
GPL-2.0
Topic
Backend
Updated
Oct 2026
Homepage
GitHub

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.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history ↗

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

ghidra — a full decompiler and disassembler suite for deep reverse engineering, heavier weight than ImHex's byte-level view. ↗010 Editor — a commercial hex editor with a similar binary template concept, closed source.HxD — a lightweight free Windows hex editor without a pattern language or disassembler.Radare2 / Cutter — a command-line-first reverse engineering framework with its own disassembler, better suited to scripting workflows.

Frequently asked questions

Is ImHex free and open source?

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.

What platforms does ImHex support?

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.

How do I write ImHex pattern language files?

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.

Can ImHex disassemble binary code?

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.

Does ImHex require a dedicated GPU?

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.

What file formats can ImHex parse?

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

Source & attribution

Facts and feature details are drawn from the WerWolv/ImHex GitHub repository (github.com/WerWolv/ImHex) and its README.

GitHub data · last synced Aug 14, 2026Reviewed by Henry
← Back to TopGit

Still deciding about ImHex?

One click hands the question to an AI along with this page — see what it says about ImHex.

GitHub