This release has been cooking for a very long time and encompasses over 500 commits improving basically every single aspect of ImHex in one way or another. Hope y'all like it ❤️
Additions
- ImHex is now available for the Web!
- It supports basically 99% of all features that the native version does (minus things like process memory, raw disk providers and some other things that browsers just don't have access to)
- Check it out at https://web.imhex.werwolv.net
- Support was added entirely by @iTrooz. Massive thanks to him!
- ImHex now has a native Apple M1 build!
- Currently this version is cross compiled from Linux
- It is unsigned and distributed in a zip file instead of a dmg (You might need to disable SIP to run it)
- Any PRs improving this are highly welcome!
- Again huge thanks to @iTrooz for adding this
- Added a Auto Updater
- Currently this supports the Windows MSI version, Ubuntu and macOS dmg version.
- Added a shortcut manager to the Settings
- Added Markdown reports
- This system allows you to export things like bookmarks, patterns and data information to a markdown file for easy documentation
- Greatly improve the Undo/Redo system
- This now allows you to undo and redo things like resizes, insertions and removals that previously were irreversible
- Important to note is, all changes made in ImHex still get applied to the file directly!
- Added option to specify custom highlighting rules to set the foreground color of bytes according to boolean equations
- Added Workspaces
- These enhance the old Layout system by allowing you to create multiple workspaces all with their own layouts and freely switch between them
- Added a minimal layout
- Many people just want to have a dirt simple Hex Editor and not all the extra features ImHex offers
- The minimal layout is meant for them. It hides everything except the hex editor and makes the UI much simpler
- Added automatic backups
- Ever had ImHex crash on you randomly in the middle of work you haven't saved? Well now automatic backups can be enabled in the settings to they are created every N seconds
- Added a interactive tutorial
- There's currently just a simple one to get people started but more will be added in the future
- Merged in old ExtraHashes plugin
- This adds support for about 20 new hashes such as Adler32, Blake, Tiger and Murmur
- The Process Memory provider can now be used in Linux. Thanks a lot to @trumank
- Added support for locking layouts
- Replaced weird Import -> Base 64 option with a full Base64 provider
- This provider can transparently decode and re-encode base64 files to view and modify them
- Added support for Fedora 39, removed support for Fedora 37. Thanks to @jonathanspw
- Added support for hiding individual data inspector rows
- Added simple right click context menu to the pattern editor
- Added setting to enable colored pattern row backgrounds
- Added bitwise shift left/right nodes to the data processor
- Added release notes and commits to about page
- Added some fun things :)
- Added simple data access graph to pattern editor when a pattern is being executed
- All the copy-as formatters can now output data directly to a file
- Patterns in the pattern data view can now be filtered by value
- For example using
myStruct.* > 5
shows all members inside ofmyStruct
with a value greater than 5
- For example using
- Added a TCP Client/Server tester tool
- Added a simple function graphing calculator tool
- Added euclidean algorithms tool
- Added a search bar to open the command palette to the title bar
- Added pretty syntax highlighting to the demangler tool
- Added support for making fonts bold or italic
- Vastly improved the 3D Visualizer to render the model much nicer. Thanks a lot to @paxcut
- This includes specular lighting, light colors, wireframe mode, a grid and axes arrows
- Added
--hexdump
subcommand to the CLI to get a hexdump of a file - Added
--demangle
subcommand to the CLI to demangle symbols - Added setting to enable resource usage widgets in the footer
- Added new unit conversion tool to command pallette
- It currently supports switching between different number formats as well as byte / bit representations
- Some valid inputs are
5MiB in hex
,0x42000 to Mb
or0xAABBCC in decimal
- Added support for searching for specific strings in UTF-16 and while ignoring the character case
- Added button to export pattern language sections to a file
Improvements
- Rewrote, restructured and redesigned Settings interface
- Updated ImGui to v1.90
- We also merged in the new Shadows branch to add pretty shadows to all windows
- Lots and lots of UI improvements
- Replaced many info and error popup modals with toasts
- Lots and lots of internal rewrites, restructures and refactors
- Most of these changes aren't user-facing, however they made many systems much more stable so they won't break as easily anymore in the future
- Scrolling in the hex editor now works much nicer
- A entire 64 bit address space can now be displayed on one virtual page without losing precision
- Drastically improved performance of some background tasks
- Analyzing data regions and searching through the data will be much faster now
Edit -> Jump to
can now jump to big and little endian addresses- ImHex now supports using integrated GPUs on macOS
- The Raw Disk Provider now lists all physical drives on Windows and displays more friendly disk names now
- Default magic database is now bundled with application instead of being part of the content store
- The ImHex window is now force set to be 100% opaque which should fix issues where the window is partially transparent on some GPUs
- Newly opened windows are now automatically docked instead of floating around
- Improved "Unsaved Changes" popup that shows up when closing unsaved providers
- Zeros in the HTML formatted data are now grayed out
- Shift-Backspace now works in the pattern editor
- The color picker tool is much more useful now
- Added support for outputting colors in many different bit layouts with a specifyable amount of bits
- Added displaying of the name of the selected color
- Fixed docking two tool windows to each other making both disappear
- Files that are inside of subfolders now display their relative path in the file chooser popup
- Advanced provider settings (when available) are now part of the sidebar
- Hovering over a color in the Theme Manager now flashes that color in yellow in the UI
- CRC32 now uses reflected version by default as that is the standard. Thanks to @qux-bbb
- Many tables now refuse to collapse to zero-height
- Glyphs in the font atlas are now packed more efficiently so GPUs won't reject the texture as often anymore
- Bookmark addresses can now be changed in the UI after creating them
- The hex editor's footer is now collapsible
- More popups can now be closed by pressing Escape
- ImHex now tries to only render frames when it has to, saving more system resources
- Fixed some issues where settings might be reset in rare cases
Bug Fixes
- Fixed issue where no provider was being selected when closing a provider in some cases
- Fixed console opening and not disappearing when using the Windows Terminal
- Moving windows that overlap with the main window title bar no longer move the main window
- Popups that are not visible on the screen anymore are now properly reset back to the center
- Hovering over a provider tab always showed information about the current provider
- Fixed a crash when opening invalid files through the CLI
- Fixed achievement triggering every single time a file was opened through the CLI
- Fixed issues where the recursion check in the data processor triggered too early
- Fixed data processor workspaces not always loading correctly from a project file
- Fixed issues where the native scaling of ImHex was way too small
- Fixed modifying bytes sometimes get populated with incorrect values
- Fixed binary pattern search being broken with alignments greater than 1
- Fixed file picker not handling supported extensions correctly
- Fixed crash when using a too large column count in the hex editor
- Fixed issues with unary operators when evaluating mathematical expressions
- Fixed out-of-bounds reads when opening a zero-sized file
- Fixed highlight colors of bookmarks in the hex editor not changing when updating the bookmark's color
- Fixed opening files with non-ASCII file paths from the command line
- Fixed numeric search tool not displaying values in the correct endianess
- Fixed diffing view highlighting not working correctly with a custom base address
Pattern Language
- Ongoing: Big parts of the Pattern Language are currently being rewritten in order to drastically improve usability, speed and reliability
- Added support for writing back to the data source
- Adding
#pragma allow_edits
and then just assigning to a placed variable will now modify the analyzed data
- Adding
- Added support for decompressing data
- Pattern non-type template parameters are no longer added to the output
- Fixed
std::math::atan2
not being registered correctly - Fixed a bunch of other issues
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Full Changelog: v1.31.0...v1.32.0