Light mode, Node data processor, custom encodings and more
Changelog
Additions
- Pattern language additions
- Added new built-in functions
addressof
: Gets the address of a variablenextAfter
: Gets the address directly after a variablealignTo
: Aligns a value to the provided boundaries
- Added modulus operator
%
- Added dollar operator
$
. It acts as a value placeholder and returns the current address within the file - Added support for printing 128 bit values
- Added attributes
- The attribute syntax is similar to the one found in C++
[[attr("value")]]
and allows configuring extra parameters for variables. Currently available are the following: name
: Overrides the name displayed in the pattern data viewcolor
: Overrides the color displayed in the pattern data viewcomment
: Adds a comment to the variable in the pattern data view
- The attribute syntax is similar to the one found in C++
- Added new built-in functions
- Added Light and Classic color mode, changeable in the new settings interface
- Added data processor
- This is a huge feature that allows preprocessing of data before it is shown in the hex view through a node system.
- Currently following features are supported
- Bitwise operations
- Boolean operations
- Control flow (if and co)
- Base64 and hexadecimal decoding
- AES decryption (all commonly used modes)
- Besides this there's also a Nodes API that allows plugin devs to implement their own nodes
- Added full localization support
- Through custom plugins, ImHex can now be fully translated to other languages
- Language selection is done through the settings menu
- Added custom file encoding features
- This allows for example ROM hackers to provide so called
Thingy
files that map byte sequences to UTF-8 characters. These decodings will be displayed to the right of the ASCII pane in the hex view
- This allows for example ROM hackers to provide so called
- Added set base address option to hex editor
- Added settings interface
- Added color picker for Bookmark header and selection color
- Also added a tooltip window for bookmarks when hovering over their region in the hex view
- Added keyboard navigation. Thanks to @csinkers
- Improved suggested pattern popup to now list all available patterns instead of just the first one
- Added a nice welcome screen
- Added support for Home, End, PageUp and PageDown keys in hex view
- Added base converter tool
- Added footer and an API to add information to it
Improvements
- Most popup windows can now be closed with the ESC key
- All built-in features of ImHex are now refactored into a "builtin" plugin
- Improved about page to contain actual links and better information
- Improved error displaying for when files failed to open
- Switched to mbedtls instead of openssl for crypto operations
Bug fixes
- Fixed issues with plugins
- Fixed signed integer display in data inspector
- Fixed many crashes especially on Linux
- Disabled multi-viewport support on Linux as it's just not ready yet to be used there
- Once ImGui updates and adds better support for Linux, this will be reverted
- Fixed multiple memory leaks
- Fixed search feature in hex view
- Fixed hex view shortcuts
- Fixed multiple instances of popups only appearing when certain views are open
- Fixed bookmarks being created and displayed in wrong positions in huge files
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!