• Stars
    star
    43,146
  • Rank 316 (Top 0.01 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created about 4 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

'Build' workflow Status Discord Server Total Downloads Code Quality Translation Documentation Plugins

Supporting

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

GitHub donate button Patreon donate button PayPal donate button

Screenshots

Hex editor, patterns and data information Bookmarks, disassembler and data processor

Features

  • Featureful hex view
    • Byte patching
    • Patch management
    • Copy bytes as feature
      • Bytes
      • Hex string
      • C, C++, C#, Rust, Python, Java & JavaScript array
      • ASCII-Art hex view
      • HTML self-contained div
    • String and hex search
    • Colorful highlighting
    • Goto from start, end and current cursor position
  • Custom C++-like pattern language for parsing highlighting a file's content
    • Automatic loading based on MIME type
    • arrays, pointers, structs, unions, enums, bitfields, namespaces, little and big endian support, conditionals and much more!
    • Useful error messages, syntax highlighting and error marking
  • Doesn't burn out your retinas when used in late-night sessions
    • Dark mode by default, but a light mode is available as well
  • Data importing
    • Base64 files
    • IPS and IPS32 patches
  • Data exporting
    • IPS and IPS32 patches
  • Data inspector allowing interpretation of data as many different types (little and big endian)
  • Huge file support with fast and efficient loading
  • String search
    • Copying of strings
    • Copying of demangled strings
  • File hashing support
    • CRC16 and CRC32 with custom initial values and polynomials
    • MD4, MD5
    • SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
  • Disassembler supporting many architectures (frontend for 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
    • Region highlighting
    • Comments
  • Data Analyzer
    • File magic-based file parser and MIME type database
    • Byte distribution graph
    • Entropy graph
    • Highest and average entropy
    • Encrypted / Compressed file detection
  • Built-in Content Store
    • Download all files found in the database directly from within ImHex
  • Yara Rules support
    • Quickly scan a file for vulnerabilities with official yara rules
  • Helpful tools
    • Itanium and MSVC demangler
    • ASCII table
    • Regex replacer
    • Mathematical expression evaluator (Calculator)
    • Hexadecimal Color picker
    • Base converter
    • UNIX Permissions calculator
    • Anonfiles File upload tool
    • Wikipedia term definition finder
    • File utilities
      • File splitter
      • File combiner
      • File shredder

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.

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:

  • OS:
    • Windows: Windows 7 or higher (Windows 10/11 recommended)
    • macOS: macOS 11 (Big Sur) or higher,
    • Linux: "Modern" Linux. The following distributions have official releases available. Other distros are supported through the AppImage and Flatpak releases.
      • Ubuntu 22.04/23.04
      • Fedora 36/37
      • RHEL/AlmaLinux 9
      • Arch Linux
  • CPU: x86_64 (64 Bit)
  • GPU: OpenGL 3.0 or higher
    • Intel HD drivers are really buggy and often cause graphic artifacts
    • In case you don't have a GPU available, there are software rendered releases available for Windows and macOS
  • RAM: 256MB, more may be required for more complicated analysis
  • Storage: 100MB

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. On macOS, Clang is also required to compile some ObjC code. All releases are being built using latest available GCC.

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 one of the following two templates projects 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.

Credits

Contributors

  • Mary for her immense help porting ImHex to MacOS and help during development
  • Roblabla for adding MSI Installer support to ImHex
  • jam1garner and raytwo for their help with adding Rust support to plugins
  • Mailaender for getting ImHex onto Flathub
  • iTrooz for many improvements related to release packaging and the GitHub Action runners.
  • 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 ocornut as well for their hex editor view used as base for this project.
    • Thanks to BalazsJako for their incredible ImGuiColorTextEdit used for the pattern language syntax highlighting
  • Thanks to nlohmann for their json library used for project files
  • Thanks to aquynh for capstone which is the base of the disassembly window
  • Thanks to vitaut for their libfmt library which makes formatting and logging so much better
  • Thanks to rxi for microtar used for extracting downloaded store assets
  • Thanks to btzy for nativefiledialog-extended
  • Thanks to danyspin97 for xdgpp
  • Thanks to all other groups and organizations whose libraries are used in ImHex

More Repositories

1

EdiZon

πŸ’‘ A homebrew save management, editing tool and memory trainer for Horizon (Nintendo Switch)
C
1,166
star
2

Tesla-Menu

The Nintendo Switch overlay menu
Makefile
949
star
3

ImHex-Patterns

Hex patterns, include patterns and magic files for the use with the ImHex Hex Editor
Rust
642
star
4

EdiZon_CheatsConfigsAndScripts

The official EdiZon Editor Config and Editor Script repository.
Python
476
star
5

ovl-sysmodules

A sysmodule selector for Tesla
C++
248
star
6

libtesla

The support library for Tesla overlays
C
216
star
7

Hekate-Toolbox

A toolbox for Hekate
C++
214
star
8

PatternLanguage

The Pattern Language used by the ImHex Hex Editor
C++
167
star
9

Fenestra

🫧 An ImGui-based UI system to defenestrate all others
C++
99
star
10

libromfs

Simple library for embedding static resources into C++ binaries using CMake
C++
68
star
11

PythonCatPrinter

Reverse engineered printer commands for the GB01 Cat Thermal Printer that use the "iPrint" app
Python
58
star
12

EdiZon-Rewrite

πŸ’‘ A homebrew save management, editing tool and memory trainer for Horizon (Nintendo Switch)
CSS
55
star
13

SwitchXBOXController

Turn your Nintendo Switch into an XBOX360 controller to play on your Windows computer
C
51
star
14

ILInterpreter

A simple IL interpreter to hopefully bring .NET to the switch one day
C++
44
star
15

Tesla-Template

A template repository for Tesla Overlay Homebrews
Makefile
41
star
16

Archway

A WIP aarch64 emulator (and at some point dynarec) written in C++20.
C++
27
star
17

PCBEmulator

C++
20
star
18

SurfaceAlwaysDTX

A tool to force detach the Surface Book 2's screen even with low battery
C#
19
star
19

Decompiler

A WIP disassember and decompiler written in modern C++ with the goal to do as much work during compile time as possible
C++
17
star
20

ImHex-Plugin-Oracle

A ImHex plugin to ask the almighty Oracle (OpenAI's Davinci AI) for help identifying file formats
C++
17
star
21

libwolv

C++ Helper library containing various types and functions used throughout many of my projects
C++
16
star
22

ImHex-Patties

πŸ”Ž Small exercises to get you used to reading and writing Pattern code!
15
star
23

ImHex-Cpp-Plugin-Template

Simple template project for creating plugins in C++ for the ImHex Hex Editor
CMake
13
star
24

libsteam

Simple C++ library to interact with Steam client file formats and the Steam Deck
C++
13
star
25

SDH-SystemToolbox

TypeScript
12
star
26

STM32MP1OS

C++
12
star
27

Schwarzschild

A SDL based UI library to create clean and vanilla looking interfaces in Horizon (Nintendo Switch homebrews)
C++
11
star
28

ImHex-Rust-Plugin-Template

Rust
10
star
29

pwswdpp

A modern C++ rewrite of the OpenDingux pwswd daemon
C++
9
star
30

ShaderPaper

Manager tool and Daemon to use shadertoy.com GLSL shaders as windows desktop wallapapers
C
9
star
31

PowerPrevent_SysModule

C
8
star
32

SDH-FreeGames

A decky plugin that tells you today's free game from the Epic Games Store (and possible other stores in the future) and sends you a daily reminder notification
TypeScript
7
star
33

YouTube-Playlist-Downloader

C#
6
star
34

ImHex-Plugin-Template

CMake
6
star
35

DriverDescriptionLanguage

Description language to define hardware drivers
C++
6
star
36

Fenestra-Template

The official template repository for creating Fenestra applications
CMake
6
star
37

RTOS

C
5
star
38

RG350Launcher

C
5
star
39

8051Emulator

A simple emulator for code built for the 8051 architecture
C++
4
star
40

PatternLanguageWeb

JavaScript
4
star
41

Rust-Java-VM

Rust
4
star
42

PatternLanguageDiscordBot

C++
3
star
43

WerWolv

3
star
44

xdgpp

Mirror of the xdgpp library (https://git.sr.ht/~danyspin97/xdgpp)
C++
3
star
45

ExeModules

C++
3
star
46

ImHex-Malcore-Plugin

C++
3
star
47

EdiZon-Website

EdiZon's website
HTML
3
star
48

Sysmodule_Access

Makefile
2
star
49

ImHex-Hashes-Plugin

All functionality of this plugin has been merged into mainline ImHex
C++
2
star
50

ClangSTM32

2
star
51

Documentation

2
star
52

imhex-download-sdk

2
star
53

EventHorizonOS

C
1
star
54

LuaWrapper_CSharp

C#
1
star
55

EverPhaseServer

Shell
1
star
56

WerWolvAPI

Python
1
star
57

Pi3Kernel

A WIP aarch64 kernel for the Raspberry Pi 3
C
1
star
58

Steuerprint

C
1
star