ImHex

2025-12-10 0 134

A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.

/ˈɪmhɛks/

Supporting

If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!

Screenshots

More Screenshots

Features

Featureful hex view
  • Byte patching
  • Patch management
  • Infinite Undo/Redo
  • \”Copy bytes as…\”
    • Bytes
    • Hex string
    • C, C++, C#, Rust, Python, Java & JavaScript array
    • ASCII-Art hex view
    • HTML self-contained div
  • Simple string and hex search
  • Goto from start, end and current cursor position
  • Colorful highlighting
    • Configurable foreground highlighting rules
    • Background highlighting using patterns, find results and bookmarks
  • Displaying data as a list of many different types
    • Hexadecimal integers (8, 16, 32, 64 bit)
    • Signed and unsigned decimal integers (8, 16, 32, 64 bit)
    • Floats (16, 32, 64 bit)
    • RGBA8 Colors
    • HexII
    • Binary
  • Decoding data as ASCII and custom encodings
    • Built-in support for UTF-8, UTF-16, ShiftJIS, most Windows encodings and many more
  • Paged data view
Custom C++-like pattern language for parsing highlighting a file\’s content
  • Automatic loading based on MIME types and magic values
  • Arrays, pointers, structs, unions, enums, bitfields, namespaces, little and big endian support, conditionals and much more!
  • Useful error messages, syntax highlighting and error marking
  • Support for visualizing many different types of data
    • Images
    • Audio
    • 3D Models
    • Coordinates
    • Time stamps
Theming support
  • Doesn\’t burn out your retinas when used in late-night sessions
    • Dark mode by default, but a light mode is available as well
  • Customizable colors and styles for all UI elements through shareable theme files
  • Support for custom fonts
Importing and Exporting data
  • Base64 files
  • IPS and IPS32 patches
  • Markdown reports
Data Inspector
  • Interpreting data as many different types with endianness, decimal, hexadecimal and octal support and bit inversion
    • Unsigned and signed integers (8, 16, 24, 32, 48, 64 bit)
    • Floats (16, 32, 64 bit)
    • Signed and Unsigned LEB128
    • ASCII, Wide and UTF-8 characters and strings
    • time32_t, time64_t, DOS date and time
    • GUIDs
    • RGBA8 and RGB65 Colors
  • Copying and modifying bytes through the inspector
  • Adding new data types through the pattern language
  • Support for hiding rows that aren\’t used
Node-based data pre-processor
  • Modify, decrypt and decode data before it\’s being displayed in the hex editor
  • Modify data without touching the underlying source
  • Support for adding custom nodes
Loading data from many different data sources
  • Local Files
    • Support for huge files with fast and efficient loading
  • Raw Disks
    • Loading data from raw disks and partitions
  • GDB Server
    • Access the RAM of a running process or embedded devices through GDB
  • Intel Hex and Motorola SREC data
  • Process Memory
    • Inspect the entire address space of a running process
Data searching
  • Support for searching the entire file or only a selection
  • String extraction
    • Option to specify minimum length and character set (lower case, upper case, digits, symbols)
    • Option to specify encoding (ASCII, UTF-8, UTF-16 big and little endian)
  • Sequence search
    • Search for a sequence of bytes or characters
    • Option to ignore character case
  • Regex search
    • Search for strings using regular expressions
  • Binary Pattern
    • Search for sequences of bytes with optional wildcards
  • Numeric Value search
    • Search for signed/unsigned integers and floats
    • Search for ranges of values
    • Option to specify size and endianness
    • Option to ignore unaligned values
Data hashing support
  • Many different algorithms available
    • CRC8, CRC16 and CRC32 with custom initial values and polynomials
      • Many default polynomials available
    • 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, Rotating, ShiftAndXor, SuperFast
    • Murmur2_32, MurmurHash3_x86_32, MurmurHash3_x86_128, MurmurHash3_x64_128
    • SipHash64, SipHash128
    • XXHash32, XXHash64
    • Tiger, Tiger2
    • Blake2B, Blake2S
  • Hashing of specific regions of the loaded data
  • Hashing of arbitrary strings
Diffing support
  • Compare data of different data sources
  • Difference highlighting
  • Table view of differences
Integrated disassembler
  • Support for all architectures supported by Capstone
    • ARM32 (ARM, Thumb, 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 Packet Filter
Bookmarks
  • Support for bookmarks with custom names and colors
  • Highlighting of bookmarked region in the hex editor
  • Jump to bookmarks
  • Open content of bookmark in a new tab
  • Add comments to bookmarks
Featureful data analyzer and visualizer
  • File magic-based file parser and MIME type database
  • Byte type distribution graph
  • Entropy graph
  • Highest and average entropy
  • Encrypted / Compressed file detection
  • Digram and Layered distribution graphs
YARA Rule support
  • Scan a file for vulnerabilities with official yara rules
  • Highlight matches in the hex editor
  • Jump to matches
  • Apply multiple rules at once
Helpful tools
  • Itanium, MSVC, Rust and D-Lang demangler based on LLVM
  • ASCII table
  • Regex replacer
  • Mathematical expression evaluator (Calculator)
  • Graphing calculator
  • Hexadecimal Color picker with support for many different formats
  • Base converter
  • Byte swapper
  • UNIX Permissions calculator
  • Wikipedia term definition finder
  • File utilities
    • File splitter
    • File combiner
    • File shredder
  • IEEE754 Float visualizer
  • Division by invariant multiplication calculator
  • TCP Client/Server
  • Euclidean algorithm calculator
Built-in Content updater
  • Download all files found in the database directly from within ImHex
    • Pattern files for decoding various file formats
    • Libraries for the pattern language
    • Magic files for file type detection
    • Custom data processor nodes
    • Custom encodings
    • Custom themes
    • Yara rules
Modern Interface
  • Support for multiple workspaces
  • Support for custom layouts
  • Detachable windows
Easy to get started
  • Support for many different languages
  • Simplified mode for beginners
  • Extensive documentation
  • Many example files available on the Database
  • Achievements guiding you through the features of ImHex
  • Interactive tutorials

Pattern Language

The Pattern Language is the completely custom programming language developed for ImHex.
It allows you to define structures and data types in a C-like syntax and then use them to parse and highlight a file\’s content.

  • Source Code: Link
  • Documentation: Link

Database

For format patterns, libraries, magic and constant files, check out the ImHex-Patterns repository.

Feel free to PR your own files there as well!

Requirements

To use ImHex, the following minimal system requirements need to be met.

Important

ImHex requires a GPU with OpenGL 3.0 support in general.
There are releases available (with the -NoGPU suffix) that are software rendered and don\’t require a GPU, however these can be a lot slower than the GPU accelerated versions.

If possible at all, make ImHex use the dedicated GPU on your system instead of the integrated one.
ImHex will usually run fine with integrated GPUs as well but certain Intel HD GPU drivers on Windows are known to cause graphical artifacts.

  • OS:
    • Windows: Windows 7 or higher (Windows 10/11 recommended)
    • macOS: macOS 13 (Ventura) or higher,
      • Lower versions should still work too, but you\’ll need to compile ImHex yourself. The release binaries will NOT work.
      • The macOS build is not signed and will require you to manually allow them in the Security & Privacy settings.
    • Linux: \”Modern\” Linux. The following distributions have official releases available. Other distros are supported through the AppImage and Flatpak releases.
      • Ubuntu and Debian
      • Fedora
      • RHEL/AlmaLinux
      • Arch Linux
      • Basically any other distro will work as well when compiling ImHex from sources.
  • CPU: Officially supported are x86_64 and ARM64, though any Little Endian 64 bit CPU should work.
  • GPU: OpenGL 3.0 or higher
    • Integrated Intel HD iGPUs are supported, however certain drivers are known to cause various graphical artifacts, especially on Windows. Use at your own risk.
    • In case you don\’t have a GPU available, there are software rendered releases available for Windows and macOS
  • RAM: ~150MiB, more is required for more complex analysis
  • Storage: 150MiB

Installing

Information on how to install ImHex can be found in the Install guide

Compiling

To compile ImHex on any platform, GCC (or Clang) is required with a version that supports C++23 or higher.
Windows and Linux releases are being built using latest available GCC.
MacOS releases are being built using latest available LLVM Clang.

Important to note is, the MSVC and AppleClang compilers are both NOT supported since they\’re both generally severely outdated and lack features GCC and LLVM Clang have.

Note

Many dependencies are bundled into the repository using submodules so make sure to clone it using the --recurse-submodules option.
All dependencies that aren\’t bundled, can be installed using the dependency installer scripts found in the /dist folder.

For more information, check out the Compiling guide.

Contributing

See Contributing

Plugin development

To develop plugins for ImHex, use the following template project to get started. You then have access to the entirety of libimhex as well as the ImHex API and the Content Registry to interact with ImHex or to add new content.

  • ImHex Plugin Template

Credits

Contributors

  • iTrooz for getting ImHex onto the Web as well as hundreds of contributions in every part of the project
  • jumanji144 for huge contributions to the Pattern Language and ImHex\’s infrastructure
  • Mary for her immense help porting ImHex to MacOS and help during development
  • Roblabla for adding MSI Installer support to ImHex
  • Mailaender for getting ImHex onto Flathub
  • Everybody else who has reported issues on Discord or GitHub that I had great conversations with 🙂

Dependencies

  • Thanks a lot to ocornut for their amazing Dear ImGui which is used for building the entire interface
    • Thanks to epezent for ImPlot used to plot data in various places
    • Thanks to Nelarius for ImNodes used as base for the data processor
    • Thanks to BalazsJako for ImGuiColorTextEdit used for the pattern language syntax highlighting
  • Thanks to nlohmann for their json library used for configuration files
  • Thanks to vitaut for their libfmt library which makes formatting and logging so much better
  • Thanks to btzy for nativefiledialog-extended and their great support, used for handling file dialogs on all platforms
  • Thanks to danyspin97 for xdgpp used to handle folder paths on Linux
  • Thanks to aquynh for capstone which is the base of the disassembly window
  • Thanks to rxi for microtar used for extracting downloaded store assets
  • Thanks to VirusTotal for Yara used by the Yara plugin
  • Thanks to Martinsos for edlib used for sequence searching in the diffing view
  • Thanks to ron4fun for HashLibPlus which implements every hashing algorithm under the sun
  • Thanks to mackron for miniaudio used to play audio files
  • Thanks to all other groups and organizations whose libraries are used in ImHex

License

The biggest part of ImHex is under the GPLv2-only license.
Notable exceptions to this are the following parts which are under the LGPLv2.1 license:

  • /lib/libimhex: The library that allows Plugins to interact with ImHex.
  • /plugins/ui: The UI plugin library that contains some common UI elements that can be used by other plugins

The reason for this is to allow for proprietary plugins to be developed for ImHex.

下载源码

通过命令行克隆项目:

git clone https://github.com/WerWolv/ImHex.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 ImHex https://www.zuozi.net/33613.html

OpenRCT2
上一篇: OpenRCT2
CPlusPlusThings
下一篇: CPlusPlusThings
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务