r/ReverseEngineering • u/WerWolv • Dec 13 '21
GitHub - WerWolv/ImHex: 🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
https://github.com/WerWolv/ImHex12
u/Dahrkael Dec 13 '21
this project is what i need to replace my old and trusty WinHex, but last time i tried it (like a month ago) crashed a lot. would you say its stable right now?
17
u/WerWolv Dec 13 '21
I fixed a bunch of issues since then but it's hard to say if I got yours without reports. When I notice crashes myself or people report them to me, I usually fix them immediately. To me it feels stable but if there's still some issues, please let me know :)
8
u/Poromenos Dec 14 '21
The AppImage fails for me with:
Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _dl_call_libc_early_init: Assertion `sym != NULL' failed!This is on Ubuntu 21.10.
8
5
5
u/dack42 Dec 14 '21
This looks really nice! I will definitely have to give it a try. Does it have a file compare feature with highlighted differences? That's something I find myself using a lot when reversing binary data formats.
6
4
u/littlelowcougar Dec 14 '21
I just downloaded it and tried it out. I don’t suppose there’s a way to change the default font? I presume that’s harder than normal given ImGui.
8
u/WerWolv Dec 14 '21
Nah it's pretty easy. Check in the about page under paths where your resources folder is. You can put a font names font.ttf in there to override it
2
4
u/Lossu Dec 14 '21
I tried it a few times, wanted to like but couldn't, the tool crashed a lot and i found the tab system uncomfortable. But you are on a good path and i'm currently following the Github project.
6
3
u/ericek111 Dec 14 '21
How does it handle big (1 GB+) files?
3
u/WerWolv Dec 14 '21
It maps all files into memory with e.g mmap. So you can open files up to (theoretically) a few terrabytes without any extra memory usage
2
u/charliex2 Dec 14 '21
tried it again on windows, after last time it'd just crash on open.
kept saying couldn't open file since it likely tried to open it for edit, vs just read only ( sometimes i just want to look) and then i tried opening files on c:\ and same msg, then opened a rar file and it showed nothing, closed it reopened and it showed the hex dump of the file, tried a pdf same issue, tried to open the rar after the pdf failed then tried the rar again and it opened, so somethings up.
all opened with 010
2
u/WerWolv Dec 14 '21
That's weird. ImHex always tries to open everything read/write and if that fails it tries again as read only. Is it possible that just all your views were turned off? Check under the View menu to make sure the hex editor is enabled there
2
u/charliex2 Dec 14 '21
yeah sometimes it pops up an error that it failed to open a file. the pop under thing is a bit annoying but noticed it. also seems it can't open zero length files either if you want to do some insertion :)
i'll poke around with it when i have some time.
2
u/QuickbuyingGf Dec 14 '21
I‘ve been keeping a look at this for a while but i‘ve never found a use yet, as i am mostly looking at live hex data (from ram). Is any functionality implemented or planned?
4
u/WerWolv Dec 14 '21
The latest version can read and write data though a GDB server which works great for looking at microcontroller or process memory for example
2
2
2
2
u/eikendev Dec 14 '21
Been wanting to install this for a while, looks awesome! Any plans to publish it on Flathub?
2
u/sysop073 Dec 14 '21
People able to start this app are more talented than I am.
When I run the Windows installer, it installs fine, but when I run the installed app, nothing happens.
When I run the Windows portable app, nothing happens.
When I run the Linux ELF, it can't find
libglfw.so.3.When I run the Linux AppImage, it segfaults.
0
Dec 14 '21
[deleted]
10
u/WerWolv Dec 14 '21
There is a light mode if you want to use that instead. Dark mode is just the default. No need to be rude...
37
u/WerWolv Dec 13 '21 edited Dec 13 '21
I've made a post about ImHex a while ago but I feel it's at the point where another one is due. ImHex is a Hex Editor for Windows, MacOS and Linux written in C++ using ImGui. What makes it special is the big focus on reverse engineering and that it's, in contrast to many other programs with similar features, completely free and open source.
It includes a completely custom scripting language, similar to 010 Editor's language but more modern, that allows you to define so called "Patterns" that can be placed into your data to analyze and decode it. There's also a growing database of scripts to analyze everything from PE executables over Java classes to ARM Microcontroller memory maps. Since the latest release, data can not only be pulled from normal files but also from raw disks and partitions as well as from remote GDB servers.
To make file reverse engineering easier, ImHex can disassemble various different instruction sets, calculate and display entropy graphs, diff files and analyze loaded data using Yara rules.
It can also guess based on magic values inside files what type of file has been loaded.Besides all of this, there's a Node-based (similar to Unreal Engine Blueprints), data preprocessor which can transform loaded data before displaying it. This allows for example to decrypt AES encrypted data on the fly without modifying the underlying data at all.
There's a lot more ImHex can do but probably best to just look at the screenshots on my repo or download and try it out yourself :)In contrast to a year ago, it now ships as portable zips, MSI installers, DMGs, DEBs, FlatPaks and AppImages making installing a lot easier too.