Documentation
A new documentation for ImHex (mainly the pattern language right now) is in the works and can be found here: https://imhex.werwolv.net/docs. It is a lot more detailed than the one found on the Wiki here and contains information about all the new features as well. Check it out!
Changelog
Additions
- Added back MacOS support! Huge thanks to @Kuruyia for taking the time to fix it!
- Added basic support to create plugins using Rust instead of C++! Huge thanks to @jam1garner
- Added border around byte selection to make it more visible with other things highlighted
- Put maximum FPS limit to 200, added "Unlocked" option
- Variable names are now displayed when matching yara rules
- Added regex searching to string finder view. Thanks to @qdlmcfresh
Pattern Language
- Added button to stop evaluation prematurely
- Added main function support. If a function called
main
exists, it will automatically be called after all other things have been evaluated. - Added global variables
- Allow functions to be called inside structs
- Added
for
loops - Variables declared in global scope can now be accessed inside custom types.
- Added
padding
expressions in bitfields - Limited maximum number of patterns that can be created. Can be overridden using the
pattern_limit
pragma. - Allow
str
types to be used inside function bodies - Allow pointer endianess to be changed
Standard Library
- Added basic file io built-in functions
Improvements
- Improved the command palette
- Limited numbers of characters being displayed in parsed strings
[[name]]
attribute no longer changes the variable name but only the name displayed in the pattern data view- The pattern code editor now automatically closes
(
,{
,[
,"
and'
Bug fixes
- Fixed titlebar and cursor being misaligned on some computers
- Fixed nothing being printed to console in release mode, even when console is open
- Fixed multi variable declarations sometimes causing crashes
- Fixed endian pragma not working
- Fixed issue where signed integers weren't correctly sign extended
- Fixed null bytes being included in read strings
- Fixed Project file load and save not working correctly
- Fixed incorrect offsets being accessed when passing custom types to functions
- Fixed
color
attribute taking a color value in BGR instead in RGB format - Fixed not all include paths being searched correctly
- Fixed CRC and hash calculations not working properly in all cases. Thanks to @raron for fixing them and writing many unit tests to prevent issues like this in the future
- Fixed bookmarks closing when changing their name
- Fixed ImHex crashing after splash screen if no plugins have been loaded
- Fixed syntax error in code generated "Copy as Rust array" option. Thanks to @paoda
- Fixed string pattern causing crashes when they are empty
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!