Additions
- All tool windows can now be detached
- Added a RGBA8 image visualizer node to the data processor
- Added a
uninstall
target to the build script. Thanks to @iTrooz - Added
CTRL + SHIFT + Z
as a Undo shortcut. Thanks to @iTrooz - Added a menu to the Edit menu to automatically place a pattern type at the current selection
- New files are now created in memory and only turned into actual files when saved
- Added
Paste all
option to paste all bytes and resize the provider accordingly if it's too small - Added Display Buffer, Display String, Arithmetic Average, Arithmetic Median and Buffer Patch data processor nodes
- Added a setting to disable loading of unicode characters. Thanks to @iTrooz
- ImHex now no longer makes any web requests unless specifically instructed to do so by the user. Thanks to @iTrooz
- Added a new View provider to open a view of section of another provider in a new tab
Improvements
- Non-existing folders are now displayed in red in the paths list. Thanks to @iTrooz
- Visualizer data processor nodes now only show a bigger view of their content if SHIFT is held down
- Greatly improved various error messages. Thanks to @iTrooz
- Improved precision of data passed between nodes in the data processor
- Integers now use a
i128
internally instead of ai64
and floats use along double
instead of afloat
- Integers now use a
- Various pattern editor settings are now unique per provider
- Yara rule matching can now be interrupted
- Multiple Yara rules can now be applied at the same time
- Limited the maximum window name length to 32 characters
- Improved window scaling on macOS
- The pattern editor now always inserts spaces instead of tabs
Bug Fixes
- Fixed a crash when loading a new provider after evaluating pattern source code
- Fixed issues when modifying bytes on any pages but the first one
- Fixed editing not working on some Linux systems
- Fixed a crash when scrolling to the end of a file that's a multiple of 8 bytes long
- Fixed an issue that prevented pattern auto loading to work correctly on Windows. Thanks to @Asvel
- Fixed opening multiple files by dragging them onto the window
Pattern Language
- Added custom sections support
- This feature allows you to dynamically create new memory regions, write data to them and then place patterns in them
- This is useful for encrypted, compressed or otherwise transformed data
- Allow casting of strings to integers for magic numbers. For example
u32("ABCD")
turns into0x44434241
- Fixed template types not being correctly cleared on reset
- Fixed creating global arrays of certain types
- Fixed a crash when validating infinitely recursive types
- Fixed issues when returning custom types from inside of a conditional
- Fixed printing of zero sized arrays
- Fixed
[[hidden]]
attributes not applying to top level patterns - Evaluation time is now being displayed in the console once execution finished
- Removed some unneeded overhead
- Fixed format function memory leak
- Fixed
sizeof(this)
yielding incorrect results - Fixed some statements not being executed at all in global scope
- Greatly improved the speed of
std::hash::crc32
- Added
std::core::is_valid_enum
function to check if a enum has a valid representation
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!