Releases: WerWolv/ImHex
Drastically lower CPU usage, better error recovery, fixed import statements
Improvements
- Improved ability to recover from exceptions thrown in the main thread
- Drastically improved frame rendering algorithm
- ImHex doesn't use huge amounts of CPU and GPU power anymore now (especially on Linux!)
- Hex editor minimap rows now stay a constant size when resizing the window
- Improved error handling when loading Projects
Bug Fixes
- Fixed Project files being opened like regular files when opened through the command line or Open With
- Fixed yara rules not being read correctly in the advanced information section of the information view
- The Import menu is no longer disabled now when having a Read-only provider opened
- Fixed read-only information toast appearing for all providers
- Fixed crash when trying to calculate CRCs in the hashes view
- Fixed automatic pattern loading based on MIME types not working anymore
- Fixed resizing files or inserting bytes inside of files causing all data afterwards to be lost
- Fixed clicking on items while ImHex isn't focused not working
- Fixed a rare crash when downloading multiple items at once from the content store
Pattern Language
- Fixed template types imported using an
import
statement not working correctly - Fixed crash due to infinite recursion in the validator
Previous Changelog
Additions
- All main menu entries now have pretty icons
- Added Myers' diffing algorithm to the diff view
- This algorithm can display insertions and removals as well as modifications
- Huge thanks to the maintainer of Malcat!
- Added option to customize toolbar icons
- Added a much improved Out of the Box experience when first starting up ImHex
- Added many new hash algorithms
- This includes basic sum checksums, Snefru, Haval, various SHA versions, Keccak, RIPEMD, many CRC presets and many more
- Greatly improved the data information view
- Sections can now be switched on and off
- Magic information now includes more than one entry if there's multiple concatenated files
- The Digram and Layered distribution graphs now perform a lot better
- There's now built-in yara rules that are being run on files to detect compilers, programming languages and more for executables
- Greatly improved the pattern editor
- Thanks a lot to @paxcut
- This adds support for find and replace, better highlighting and many other smaller things
- Added Mini Map to the Hex Editor
- This can be enabled by clicking on the map icon in the hex editor footer
- There's also config options when right clicking that icon
- Added
Edit -> Jump to -> Pattern
option to jump directly from hex editor highlights to patterns- Clicking on patterns in the pattern data view also jumps to their definition in the pattern editor now
- Added a font picker to the settings
- Added option to highlight parent pattern regions in the hex editor when hovering over them
- Added support for searching for other string encodings and endianess. Thanks a lot to @PerikiyoXD
- Added a pretty drag-n-drop overlay when dragging files onto ImHex
- Added support for virtual file systems through the pattern language
- Added option to keep ImHex always on top of other windows
- Added option to use ImHex in fullscreen mode
- Added support for switching to other providers through the command palette
- Added a setting to always show all provider tabs, even if there's only one
- Added option to export a selection to a file
- Added a comments column to the pattern data view. It can be enabled by right clicking on the table header and selecting it there
- Added option to turn off borderless window mode
- Added option to export the results of the find view to a file
- Added option to disable command palette button in header
- Added a search bar to the file chooser popup
- Added support for opening multiple files at once
- Added support for macOS's Right click -> Open with option
Improvements
- ImHex now uses Atomic File I/O instead of mapping files into memory
- This solves various issues where certain files couldn't be opened, files on network drives not working well and more
- macOS M1 build now only requires macOS 12.1 instead of 14.0 to run
- Bookmark moving now uses ImGui's native drag n drop feature
- Syncing pattern language source code between providers should work better now
- Custom encodings that don't have multi-byte values now display immediately when selected
- The macOS build now uses a custom titlebar
- ImHex windows are now being unfocused properly if the main window loses focus
- No more blinking cursors when ImHex is in the background!
- Overwriting individual characters in the edit mode of the hex editor now works much better
- Copy-Paste now works correctly in the Web version of ImHex. Thanks a lot to @exsilium
- The find popup now remembers its content
- The crash restore popup doesn't show anymore now if there's nothing to restore
- Opening the same file multiple times is no longer possible now
Bug Fixes
- Fixed signing issues with macOS builds
- Fixed CTRL + S not removing red highlights of bytes
- Fixed address bound checks in Edit -> Jump to option
- Fixed menu bar collapsing into hamburger menu even if there's enough space
- Fixed RGBA8 data processor node not setting output buffer correctly
- Fixed provider information in information view always showing infos about the current provider instead of about the analyzed provider
- Fixed issues when using certain window management tools on Windows
- Fixed crashes when launching ImHex with file arguments
- Fixed crash when trying to use too many hex editor rows
- Fixed native theme detection of Linux. Thanks to @iTrooz
- Fixed issues where workspaces are not correctly saved sometimes
- Fixed issues where default magic database wasn't being bundled correctly
- Fixed crashes when loading very old settings files
- Fixed data inspector not updating correctly when the underlying data changed
- Fixed a crash when specifying invalid hash parameters in the hashing view
- Fixed additional folder paths not being loaded from the config file correctly
- Fixed data inspector showing two negative signs sometimes
- Fixed various issues with non-zero base addresses
Pattern Language
- Huge refactor of the Preprocessor, Lexer and Parser
- Massive thanks to @jumanji144
- Compile errors are a lot more helpful now and include more context information
- Added support for
import
statements- Massive thanks to @jumanji144
- Added stacktrace to runtime errors
- Patterns can now be placed inside of custom sections from within other types
- Pattern formatters now properly respect a patterns visibility
- This means hidden patterns don't end up in exported json, yaml or html files anymore
- Fixed writing to big endian bitfield entries
- Changing pattern setting now re-evaluates the code if auto evaluation is enabled
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Better data analysis, Myers diffing algorithm and UI improvements
Additions
- All main menu entries now have pretty icons
- Added Myers' diffing algorithm to the diff view
- This algorithm can display insertions and removals as well as modifications
- Huge thanks to the maintainer of Malcat!
- Added option to customize toolbar icons
- Added a much improved Out of the Box experience when first starting up ImHex
- Added many new hash algorithms
- This includes basic sum checksums, Snefru, Haval, various SHA versions, Keccak, RIPEMD, many CRC presets and many more
- Greatly improved the data information view
- Sections can now be switched on and off
- Magic information now includes more than one entry if there's multiple concatenated files
- The Digram and Layered distribution graphs now perform a lot better
- There's now built-in yara rules that are being run on files to detect compilers, programming languages and more for executables
- Greatly improved the pattern editor
- Thanks a lot to @paxcut
- This adds support for find and replace, better highlighting and many other smaller things
- Added Mini Map to the Hex Editor
- This can be enabled by clicking on the map icon in the hex editor footer
- There's also config options when right clicking that icon
- Added
Edit -> Jump to -> Pattern
option to jump directly from hex editor highlights to patterns- Clicking on patterns in the pattern data view also jumps to their definition in the pattern editor now
- Added a font picker to the settings
- Added option to highlight parent pattern regions in the hex editor when hovering over them
- Added support for searching for other string encodings and endianess. Thanks a lot to @PerikiyoXD
- Added a pretty drag-n-drop overlay when dragging files onto ImHex
- Added support for virtual file systems through the pattern language
- Added option to keep ImHex always on top of other windows
- Added option to use ImHex in fullscreen mode
- Added support for switching to other providers through the command palette
- Added a setting to always show all provider tabs, even if there's only one
- Added option to export a selection to a file
- Added a comments column to the pattern data view. It can be enabled by right clicking on the table header and selecting it there
- Added option to turn off borderless window mode
- Added option to export the results of the find view to a file
- Added option to disable command palette button in header
- Added a search bar to the file chooser popup
- Added support for opening multiple files at once
- Added support for macOS's Right click -> Open with option
Improvements
- ImHex now uses Atomic File I/O instead of mapping files into memory
- This solves various issues where certain files couldn't be opened, files on network drives not working well and more
- macOS M1 build now only requires macOS 12.1 instead of 14.0 to run
- Bookmark moving now uses ImGui's native drag n drop feature
- Syncing pattern language source code between providers should work better now
- Custom encodings that don't have multi-byte values now display immediately when selected
- The macOS build now uses a custom titlebar
- ImHex windows are now being unfocused properly if the main window loses focus
- No more blinking cursors when ImHex is in the background!
- Overwriting individual characters in the edit mode of the hex editor now works much better
- Copy-Paste now works correctly in the Web version of ImHex. Thanks a lot to @exsilium
- The find popup now remembers its content
- The crash restore popup doesn't show anymore now if there's nothing to restore
- Opening the same file multiple times is no longer possible now
Bug Fixes
- Fixed signing issues with macOS builds
- Fixed CTRL + S not removing red highlights of bytes
- Fixed address bound checks in Edit -> Jump to option
- Fixed menu bar collapsing into hamburger menu even if there's enough space
- Fixed RGBA8 data processor node not setting output buffer correctly
- Fixed provider information in information view always showing infos about the current provider instead of about the analyzed provider
- Fixed issues when using certain window management tools on Windows
- Fixed crashes when launching ImHex with file arguments
- Fixed crash when trying to use too many hex editor rows
- Fixed native theme detection of Linux. Thanks to @iTrooz
- Fixed issues where workspaces are not correctly saved sometimes
- Fixed issues where default magic database wasn't being bundled correctly
- Fixed crashes when loading very old settings files
- Fixed data inspector not updating correctly when the underlying data changed
- Fixed a crash when specifying invalid hash parameters in the hashing view
- Fixed additional folder paths not being loaded from the config file correctly
- Fixed data inspector showing two negative signs sometimes
- Fixed various issues with non-zero base addresses
Pattern Language
- Huge refactor of the Preprocessor, Lexer and Parser
- Massive thanks to @jumanji144
- Compile errors are a lot more helpful now and include more context information
- Added support for
import
statements- Massive thanks to @jumanji144
- Added stacktrace to runtime errors
- Patterns can now be placed inside of custom sections from within other types
- Pattern formatters now properly respect a patterns visibility
- This means hidden patterns don't end up in exported json, yaml or html files anymore
- Fixed writing to big endian bitfield entries
- Changing pattern setting now re-evaluates the code if auto evaluation is enabled
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Working M1 build, working custom plugins
Additions
- Fixed the M1 build completely
- I went out and bought a MacBook Air just for this, I hope you're happy
- Completely overhauled the external plugin system
- ImHex now ships with an SDK and a template that can be used to create plugins
- When you make Plugins now, they should just work on other people's computers now without weird missing symbols errors
- Num Keys can now be used as arrow, home, end, page up and down keys when numlock is off
- Added very simple HTTP Tool
- Basically a stripped down version of Postman / a frontend for curl
Improvements
- Added prettier progress bar animation for tasks that don't have any progress
- Removed window name from the title bar on macOS
- Moved the documentation search directly into the Help menu
- Enabled antialiasing by default on custom fonts
Bug Fixes
- Logs in log view not being filtered correctly
- Update All button in store not working correctly
- Fixed Yara Rules Add button not doing anything
- Custom highlighting didn't apply properly to the ASCII column
- Fixed Ubuntu builds missing commit informations
- Fixed issue where ImHex wouldn't go into low power mode properly
Previous Changes
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 displayin...
[Packaging fixes] Web and M1 version, Workspaces, Tutorials, Auto backups and more
Bug Fixes
- Ubuntu package no longer refers to an invalid libarchive package
- Windows packages now include libarchive and libcapstone dlls
- Library plugins are properly being initialized on macOS now
- ImHex doesn't crash anymore when opening the diffing view
Previous Changes
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!
Web and M1 version, Workspaces, Tutorials, Auto backups and more
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!
Command Line Interface, .NET scripts, Achievements
Additions
- Added a command line interface to ImHex. Huge thanks to @iTrooz
- Get started by typing
imhex --help
- Get started by typing
- Added initial support for .NET scripts
- These scripts are meant to be a cross-platform way of performing automated actions.
- They cannot be used to add new features like native plugins can
- Special thanks to @PerikiyoXD for some really involved fixes around this
- Added Achievements
- These are meant to provide an easy and fun way to learn and get used to ImHex
- The achievement window can be opened by going to Extras -> Achievement
- If you don't like the achievements and just want to use ImHex like before, open the achievements window and disable the popups there
- Added a new and much nicer splash screen
- Allow memory files to be saved to project files and be renamed
- Files can also be converted to memory files now
- Added support for hashing arbitrary strings using the hashes view
- Added built-in logging console
- Allow hex editor data visualizers to be switched to big-endian mode
- Upgraded to Capstone V5 finally
- Encoding names are now being displayed in the header of the hex editor
- Added a "Update All" button to the content store
- Linux now uses the GTK filepicker whenever possible
- This should correct issues where the file picker didn't work correctly on some Linux systems by default
- The AppImage and Flatpak still use the Portals filepicker because it's necessary there
- The hex editor editing mode is now being entered when pressing Enter
- Added a setting to remember the current main window size and position
- Added option to fill a selected region with bytes
- Added option to switch between human-readable sizes and bytes in the hex editor footer. Thanks to @LennardF1989
- Removed Anonfiles file uploader. Rest in Peace ✝️
- Added windo actions popup when clicking on the header icon
- Added authors and descriptions to things in the content store
- Added shortcuts to switch between providers, evaluate patterns and interact with the pattern debugger
Improvements
- Improved the data information diagrams look and field
- Multi-window support is now being disabled properly by default on Linux
- Plugins are now being loaded asynchronously to improve startup times
- Pattern console is automatically scrolled to the bottom now when new lines are being added
- Unidentifiable data is being handled better now in the data information view
- Allow hex editor view to be scrolled slightly past the end
- Made demangler results selectable and copyable
- Timestamp of files is being updated correctly now on Windows. Thanks to @lorsanta
- ImHex should now exit cleanly when crashing
- Bytes per row count setting in the hex editor is being remembered now. Thanks to @LennardF1989
Bug Fixes
- Fixed raw disk provider not working correctly on non-windows platforms. Thanks a lot to @Nowilltolife
- Fixed disassembler view not clearning selection when typing in the region field
- Fixed page count displaying wrongly in empty files
- Fixed crash when trying to paste bytes without a selection
- Fixed occasional crash when evaluating patterns
- Fixed scaling not being applied properly in some cases
- Fixed bookmarks not being loaded correctly from project files
- Fixed menu bar being scrollable sideways
- Fixed loading projects when an existing project is loaded already
- Fixed issues where the cursor started flickering when hovering certain elements
- Fixed crash when clicking on "Open in new view" in a bookmark
- Fixed occasional crash when loading incorrect data processor node files
- Fixed writing to non-zero pages in the hex editor when a custom base address has been set
- Fixed issue where libmagic dumped a bunch of compiled files into the cwd on Linux and macOS. Thanks to @iTrooz
- Fixed endianess of all CRC hashes
- Fixed highest/lowest entropy block address in the data information view being wrong
- Fixed issue where downloading items from the store was suceptible for path traversal. Thanks to @iTrooz
- Fixed various data processor issues
Pattern Language
- Added
typenameof
operator - Added
[[hex::favorite]]
attribute to mark patterns as favorites directly - Added
[[hex::group]]
attribute to add patterns to custom groups in the pattern data view - Added single-stepping feature to pattern debugger
- Added coordinates visualizer
- Added timestamp visualizer
- Images in the pattern image and bitmap visualizer can now be scaled
- Added various new inline visualizers such as "color", "guage" and "button"
- Format functions are no longer being evaluated during highlighting
- Sections without a name are being hidden now and treated as "internal" sections
- Added
[[hex::spec_name]]
attribute to document names for pattern variables taken from the documentation - Added string in/out variables
- Fixed issue where pattern local variables sometimes allocated huge amounts of memory
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Font loading and favorite pattern fixes
Improvements
- The Accept Pattern popup can now be closed using Escape
Bug Fixes
- Fixed an issue that caused the unifont font to not be loaded correctly causing mainly asian languages to not display correctly
- Fixed a rendering issue with the entropy and byte type graph
- Fixed hex editor hovering tooltips of large arrays causing ImHex to lag a lot
- Fixed favorites loading in large patterns causing ImHex to freeze
Previous Release
Additions
- Added option to export generated pattern data
- This allows you to export your current patterns as JSON, YAML and HTML
- Added a debugger to debug your pattern code
- This allows setting breakpoints, halting the execution and inspecting the value of variables
- Added option to upload crash logs to help us fix issues more quickly. Huge thanks to @Nowilltolife
- Added optional usage statistics reporting. Huge thanks to @Nowilltolife
- Added provider tab right click menu with provider-specific options
- The file provider for example has a option to open the file location in the explorer or open the file in an external editor
- Recent providers can now be removed from the list in the welcome screen by right clicking them and selecting "Remove". Thanks to @iTrooz
- Added support for changing the hex editor page size
- Opened projects are now being saved to the recent entries
- Added a native error message when the GLFW fails to be created. Thanks to @iTrooz
- Added a replace feature to the find view
- Added advanced provider information when hovering over its tab and holding down SHIFT
- Updated ImGui and its extension libraries to the newest versions. Thanks a lot to @iTrooz
- Added filter option to the pattern data view
- Added support for marking specific patterns in the pattern data view as favorite
- The pattern editor console can now be resized and text in it can be selected and copied
- Pattern language console log is now always printed immediately
- The Offset column in the pattern data view has been split into a Start and End column
Improvements
- The files in the file chooser popup now appear in alphabetical order
- Themes can now make use of Windows's acrylic blur window background
- Drastically improved crash backup and restore logic
- Additional title bar buttons are now being displayed when not running in borderless window mode. Thanks to @iTrooz
- Drastically improved loading times for custom encoding files
- Projects that fail to load now display a detailed error message. Thanks to @iTrooz
- Drastically improve usefulnes of stacktraces, especially on Windows.
Bug Fixes
- Fixed rendering issues with custom encodings. Thanks a lot to @shenlebantongying
- Entropy and byte type distribution graph now always fill out the entire diagram width
- Fixed issue where view-sepecific shortcuts would get applied globally
- Fixed issue where ranges found by find view were not being highlighted
- Fixed invalid key code error being spammed in the console
- Fixed a crash when sorting the value column in the pattern data view
- Fixed issues where the intel hex provider didn't display any data
- Fixed an issue where projects couldn't be saved if the current provider wasn't writable
- Fixed commit hash and branch not being displayed correctly in various places
Pattern Language
- Added
#pragma magic
to automatically load patterns based on a sequence of bytes at a specific location in the data instead of using MIME types - Added a new
hex_viewer
visualizer - Added the
[[export]]
attribute to display pattern local variable in the pattern data view - Massively improved handling of local variables
- Variables used in functions, function parameters and pattern local variables should now behave a lot more like you'd expect
- Fixed issues with the pattern 3D visualizer calculating normal vectors incorrectly. Thanks to @paxcut
- Fixed issue where loops and conditionals increased the parent stack
- Fixed a crash when pragmas didn't end with a new line
- Fixed static arrays displaying the same value for all entries
- Fixed handling of return statements in global scope
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Pattern language debugger, [[export]]ing local patterns, pattern data view improvements
Additions
- Added option to export generated pattern data
- This allows you to export your current patterns as JSON, YAML and HTML
- Added a debugger to debug your pattern code
- This allows setting breakpoints, halting the execution and inspecting the value of variables
- Added option to upload crash logs to help us fix issues more quickly. Huge thanks to @Nowilltolife
- Added optional usage statistics reporting. Huge thanks to @Nowilltolife
- Added provider tab right click menu with provider-specific options
- The file provider for example has a option to open the file location in the explorer or open the file in an external editor
- Recent providers can now be removed from the list in the welcome screen by right clicking them and selecting "Remove". Thanks to @iTrooz
- Added support for changing the hex editor page size
- Opened projects are now being saved to the recent entries
- Added a native error message when the GLFW fails to be created. Thanks to @iTrooz
- Added a replace feature to the find view
- Added advanced provider information when hovering over its tab and holding down SHIFT
- Updated ImGui and its extension libraries to the newest versions. Thanks a lot to @iTrooz
- Added filter option to the pattern data view
- Added support for marking specific patterns in the pattern data view as favorite
- The pattern editor console can now be resized and text in it can be selected and copied
- Pattern language console log is now always printed immediately
- The Offset column in the pattern data view has been split into a Start and End column
Improvements
- The files in the file chooser popup now appear in alphabetical order
- Themes can now make use of Windows's acrylic blur window background
- Drastically improved crash backup and restore logic
- Additional title bar buttons are now being displayed when not running in borderless window mode. Thanks to @iTrooz
- Drastically improved loading times for custom encoding files
- Projects that fail to load now display a detailed error message. Thanks to @iTrooz
- Drastically improve usefulnes of stacktraces, especially on Windows.
Bug Fixes
- Fixed rendering issues with custom encodings. Thanks a lot to @shenlebantongying
- Entropy and byte type distribution graph now always fill out the entire diagram width
- Fixed issue where view-sepecific shortcuts would get applied globally
- Fixed issue where ranges found by find view were not being highlighted
- Fixed invalid key code error being spammed in the console
- Fixed a crash when sorting the value column in the pattern data view
- Fixed issues where the intel hex provider didn't display any data
- Fixed an issue where projects couldn't be saved if the current provider wasn't writable
- Fixed commit hash and branch not being displayed correctly in various places
Pattern Language
- Added
#pragma magic
to automatically load patterns based on a sequence of bytes at a specific location in the data instead of using MIME types - Added a new
hex_viewer
visualizer - Added the
[[export]]
attribute to display pattern local variable in the pattern data view - Massively improved handling of local variables
- Variables used in functions, function parameters and pattern local variables should now behave a lot more like you'd expect
- Fixed issues with the pattern 3D visualizer calculating normal vectors incorrectly. Thanks to @paxcut
- Fixed issue where loops and conditionals increased the parent stack
- Fixed a crash when pragmas didn't end with a new line
- Fixed static arrays displaying the same value for all entries
- Fixed handling of return statements in global scope
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Custom layouts, Spanish translation, try-catch statements
Additions
- Added support for saving / loading your own Layouts!
- Added spanish translation. Thanks a lot to @XorTroll
- Added a network control interface
- When enabled, external tools can now send commands to ImHex over a TCP Socket
- Added non-ranged and aligned value search to find view
- Added a Documentation helper AI window where you can ask questions about ImHex and the Pattern Language
- Added selection range radio button to various views to allow specifying of exact start/end addresses
- Added a button to restore default layout when no views are open
- Opening .hexproj files through the File -> Open menu now opens them as Projects instead of as Files
- Names and Values in the pattern data view now display tooltips when hovering over them if they're too long
- Added bit and byte reversal nodes to the data processor. Thanks to @Nowilltolife
- Drastically improve the usefulness of the IEEE754 tool. Massive thanks to @paxcut
Improvements
- ImHex now tries its best to not keep any file handles around
- This should allow opening files in other tools while they're already open inside of ImHex.
- For this to work, the other tool needs to support sharing the file though.
- Some things that didn't really fit in the
Help
menu have been moved to the newExtras
menu - Many things that accessed file data are now significantly faster
- Files in the file chooser popup can now be opened by double clicking them
- Greatly improved how popups are being handled
- Pins in the data processor are more visible now
- Buttons in the bookmarks view now have tooltips
- ImHex's FPS limit now better follows the setting
- ImHex now shows an error message when it can't open files. Thanks to @iTrooz
- Pattern highlighting is now being generated much more quickly
- About page is now resizable
- Diff table is now being cleared properly when providers are closed
- MacOS should now be able to use the Open With dialog to open a file with ImHex
- Patterns that are empty can no longer be saved
- Patterns are now being automatically re-evaluated when code sync is on and the provider is being changed
- Fixed issue where the cursor icon sometimes got stuck on Windows
Bug Fixes
- Fixed crash when trying to place patterns through the Edit menu
- Fixed issue where Disassembler names didn't correspond to the correct architecture
- Fixed occasional crashes when opening project files
- Fixed a bug where the last line of patterns went missing when saving / reloading them
- Multi-window support is now disabled by default on Linux as it doesn't work well. It can still be enabled in the settings.
- Fixed issue where some shortcuts triggered twice
- Fixed commit link in about page not working correctly
- Fixed provider undo stack not working correctly
- Fixed crash when patterns are being evaluated to quickly in succession
- Fixed project files failing to save when custom encodings are loaded
- Fixed issue where ImHex sometimes dumped a bunch of compiled magic files into the user's current directory
- Fixed a crash when closing providers too quickly
- Fixed Copy-As options not being disabled correctly in some cases
- Fixed issue where editing a hex cell sometimes had the wrong value in it
Pattern Language
- Added try-catch statements
- Added
std::math::exp()
- The
std::file
functions can now write entire patterns to a file instead of just strings - Ternary operators now correctly short-circuit
- Fixed use of templates in pointer sizes
- Fixed tons and tons of bugs
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
`match` statements, `bitfield` improvements, custom themes
New projects
-
The documentation that has been finally written from scratch for most of the important features of ImHex and the Pattern Language. You can find it at https://imhex.werwolv.net/docs
-
The Pattern Language is now compatible with Emscripten so it can running in a browser! A proof of concept of this is available on https://pl.werwolv.net. It can do the same thing as the
plcli
'sformat
option can do, it takes a pattern and a binary file and converts it to a JSON, YAML or HTML file.
New Plugins
Two new plugins have been developed for ImHex as well!
- Malcore Plugin - Allows you to upload binary data to the Malcore service for analysis
- Hashes Plugin - Adds tons of new hashes to the hashes view
Additions
- Rewrote the entire Diffing view to make it actually usable
- Added support for custom themes
- These themes can either be downloaded through the Content Store or created and shared yourself through the Theme Manager
- Custom nodes can now be downloaded from the Content Store
- Added rotation and scale sliders to the 3D visualizer
- Added support for loading custom CA certs
- Added binary hex cell visualizer
- ImHex now once again loads the entire unicode character plain if possible
- Added option to disable saving of recently loaded files
- File -> Save As can now be used in all providers correctly
- Most string search options can now also be applied to the regex search
- Custom data inspector rows can now be edited
- Most main menu commands can now be found in the Command Palette (CTRL + SHIFT + P)
- Added a new byte swapper tool to the tools view
- Added new CRC hash types. Thanks to @jcreedon
- Added new Fedora 38 build. Thanks to @jonathanspw
Improvements
- Text editor now properly considers underscores as part of words
- Removed x3.0 and x4.0 scaling settings as these caused issues with GPU drivers often
- Files are no longer mapped into memory when opened by ImHex so other programs can keep using them now
- The choose file dialog entries are now correctly sorted and display their full path when hovered
- CTRL + N now properly creates a new memory file provider instead of opening a file picker. Thanks to @qux-bbb
- Chunk size and analysis region can now be specified in the data information view. Thanks to @Fenrisfulsur
- Custom encoding characters are now being rendered correctly when split between two lines
- Recent items are now being limited to 5 files at max
- The Yara match list is now sortable
- Drastically improved Bookmarks view
- Improved filtering speeds of the find view
- The current commit hash and branch now correctly shows up in the About view on release builds
- Providers now display better error messages when they can't load their data. Thanks to @iTrooz
- Search processes from the find view can now be correctly canceled
- A tooltip in the settings now informs the user about selecting custom fonts and scaling them
- Improved the look and feel of the content store
- Config files are now properly stored in the correct XDG directories on Linux
- Selected custom encoding files are now correctly saved to the current project file
- When a custom encoding is loaded and the ASCII column is disabled, there is no longer a huge gap now
- The Character padding setting now properly applies to the custom encoding column
- Improve loading speed of custom encoding files
Bug Fixes
- Fixed the bug where ImHex would keep jumping back up in the hex view when making a selection
- Fixed issues where UI was scaled too large
- Fixed editing of binary values in the data inspector
- Fixed various issues with the GDB provider
- Fixed string search not including strings at the end of the data
- Fixed rendering of UTF-16BE strings in find view
- Fixed find view string search filters filtering wrong characters. Thanks to @qux-bbb
- Fixed an issue where advancing to the next row when editing a byte would load the wrong value
- Fixed Yara view filtering out all but one match
- Fixed a crash when not making a valid selection in a provider load interface
- Fixed moving around the hex editor cursor with the arrow keys
- Fixed the standard magic file not always working correctly
- Saving and loading a pattern will no longer add a new line to it
- Using Save As on the current file no longer truncates it
- Fixed rare freezes when resizing ImHex
- Fixed occasional crashes when using ImHex through the Windows Remote Desktop
- Fixed entering of decimal and float values in the hex editor with the relevant cell visualizer selected
- Fixed filtering of long strings in the find view
Pattern Language
- Added
match
statements. Thanks a lot to @Nowilltolife - Added
std::math::accumulate
. Thanks to @Nowilltolife - Added
std::random
functions - Added
std::core::set_display_name
function. Thanks to @amaksoft - Absolute MASSIVE improvements to bitfields. Huge thanks to @Zaggy1024
- Conditionals now work correctly inside of bitfields
- Added support for unsigned, signed, boolean and enum fields inside of bitfields
- Added support for nested bitfields and bitfield arrays inside of bitfields
- Replaced [[left_to_right]] and [[right_to_left]] with a [[bitfield_order]] attribute that offers more control
- Added support for using regular types inside of bitfields
- Massive improvements to templates. Again huge thanks to @Zaggy1024
- Templates of the same type can now be nested
- Template types can now be inherited from
- Fixed various issues with templates in general
- Added support for using any type as pointer size type
- Added support for compiling the PatternLanguage to WebAssembly
- CRC32 function now correctly calculates their value the same way ImHex does
- Fixed highlighting of patterns placed in custom sections
- Fixed casts changing endianess in big endian mode
- Fixed 128 bit integer sign extension
- Fixed formatting of 128 bit enums
- Fixed placing of arrays in sections from within functions
- Fixed some occurrences of duplicate identifiers not being caught
- Fixed various issues related to doc comments
- Fixed rvalue accesses in custom sections
- Fixed type operators increasing the cursor position
- Fixed modifiying of big endian values. Thanks to @soxfox42
- Fixed issues with heap and pattern-local variables
- Fixed [[hidden]] and [[highlight_hidden]] attributes not working correctly
- Fixed creating of local variables in global scope
- Fixed parsing of nested templates
Absolute massive thanks to everybody that got involved in this Project in the past weeks. You're amazing <3
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!