Process memory provider search bar, startup fixes
Additions
- Added search bars to the process memory provider's process and module list
Bug Fixes
- Fixed the last release not starting at all anymore on macOS and Linux
Previous Changelog
Additions
- Added a "Save Project" menu entry to quickly save the current project without specifying a path
- Added byte Type distribution, digram and layered distribution plots to information view
- Added support for pasting byte strings with
0x
prefixes or commas inbetween in the hex editor view. Thanks to @Diadlo for their initial implementation of this - Added native theming support
- New themes can now simply be placed in the
%IMHEX%/themes
folder for them to be loaded
- New themes can now simply be placed in the
- Added a Process Memory Provider on Windows
- This provider can attach to any process and read its entire address space
- It can also list all available sections and modules, and inject new DLLs
Improvements
- ImHex now automatically disables unicode support if the used GPU doesn't have enough VRAM to load all glyphs
- Debug builds now completely ignore plugins that are not in the
plugins
folder next to the executable- This is useful for debugging issues especially on Linux systems where ImHex has been installed using a package manager
- The localization system has been completely revamped and now uses simple json files
- If you plan on adding support for a new language, there's a simple tool to help you with that now. Check out the HACKING.md file for more information
- Improved speed of entropy graph calculation
- Improved German translation. Thanks to @123456abcdef
- Improved Chinese (Simplified) translation. Thanks to @xtexChooser
- ImHex is now compiled using
-Wpedantic
to make sure we're using valid ISO C++
Bug Fixes
- Fixed building with LTO enabled
- Fixed patterns not appearing if pattern editor is not visible
- Fixed a crash when closing a section view while bytes were selected
- Fixed file provider adding additional zero bytes at the end of the file when saving
- Fixed issues where the hex editor view would sometimes jump back to the start of the file after searching
- Fixed searching for negative floating point values
- Fixed a crash when printing NULL bytes to the pattern console
- Fixed bookmarks displaying too many bytes in some cases
- Fixed saving of projects to paths containing non-ASCII characters
- Fixed various issues where iterators and containers got accessed incorrectly which could lead to issues and crashes
- Fixed template types being placable through the hex editor right click menu
Pattern Language
- Added the ability to modify values in the pattern data view
- To go into editing mode, double click the value field of a pattern in the pattern data view
- This works for all built-in types as well as enums by default
- If you want to make your own types modifyable, use the
[[format_write]]
attribute
- Arrays are now displayed without extra indentation if there's less than 512 entries in it
- Added visualizers
- Currently available are a basic line plot and an image visualizer
- They can be used through the
[[hex::visualizer]]
attribute
- Added support for anonymous patterns
- Allow sections to be initialized using strings
- Added new
std::mem::find_string_in_range
function str
variables can now be used in global scope- Patterns views can now be placed from functions using the placement syntax
- This doesn't add a new pattern to the pattern list but can be used to read/write bytes
- Added
$[123]
syntax to read a single byte from the main memory - Added support for doc comments
- These can be parsed and turned into markdown files using the plcli tool
- Allow attributes to directly use rvalues instead of being limited to string literals only
- This allows you to for example have pattern names, colors and many other things depend on values in the type they are applied to
- Fixed passing local variables to functions
- Fixed array out of bounds checks applying to heap arrays
- File handles are now cleaned up completely after evaluaton finishes
- Fixed reading from bitfield fields that have been placed in a different section
- Fixed
[[sealed]]
attribute not working correctly with static arrays - Improved pattern memory usage
- Fixed various issues with reference parameters
- Fixed bitfield fields not respecting endianess settings
- The
[[format]]
attribute has been deprecated in favour of the new[[format_read]]
and[[format_write]]
attributes - Fixed some patterns having no name or a black color
- Fixed broken sign extension of 64 and 128 bit signed variables
- Fixed dynamic arrays always overriding colors
- Fixed indexing of strings and wide strings
- Prevented indexing of non-indexable types
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!