Releases: WerWolv/ImHex
Hex Editor Insert Mode, File update tracker and new logo
Additions
-
Added simple insert mode to hex editor
-
Small files are now loaded into memory
- This means other applications can now open files while they're open in ImHex
- When external changes are detected, ImHex will ask if you want to reload the file
- For clarification, ImHex always opened files with full share permissions even before but basically no other programs do it so they still complain about the file being locked.
-
Added a new ImHex Logo to the Welcome screen
-
Added Hungarian translations (#1683)
-
Updated Simplified Chinese translation (#1610)
-
Added plain text and similar bytes regions to byte types diagram
-
Added full pattern path to hex editor hover tooltip
-
Added Display destination address in goto popup
-
Added provider information to search bar hover tooltip
-
Added support for shift-selecting multiple find view occurrences
-
Added table pattern visualizer
-
Added short forms for commonly used CLI commands
-
Added
--verbose
command line option to enable debug logs -
Allow workspaces to be deleted the same way as layouts
-
Allow full magic analysis, removed unidentified data from magic report
-
Added a link to the "Find" view in the search popup (#1665)
-
Improvements
-
Added support for DWM immersive dark mode on Windows (#1636)
-
The Window is now less prone to flickering during resizes on Windows
-
Double clicking on the title bar in macOS now correctly maximizes the window again (#1689)
-
The window now doesn't "rubber band" anymore while resizing on macOS (#1690)
-
Added warning about using fractional scaling with default font
-
Menu bar items now don't collapse entirely anymore if there's not enough space
-
Allow providers to be closed quicker after being opened
-
The pattern data filter now behaves much more intuitively
-
Convert all hex editor popups to floating, movable windows (#1658)
-
Don't move hex editor scroll position when jumping to address that's on-screen (#1660)
-
The accept pattern popup now opens faster and closes correctly
-
Make main menu bar not collapse completely when there's not enough space
-
Right click menus now open much faster and feel less sluggish
-
Make unsaved changes popup behave more like in other applications
-
Better UI and UX for the hex editor footer
Bug Fixes
- Fixed loading custom fonts from paths with unicode characters not working
- Fixed workspaces not being deletable correctly in all cases
- Fixed crash when having path set in user folder settings page
- Fixed icon size being off when using fractional scaling with default font
- Fixed empty tooltip showing when hovering over search bar in welcome screen
- Fixed insert mode cursor not being visible
- Fixed window scaling defaulting to 1.0x instead of Native
- Fixed settings sometimes being reset on shutdown
- Fixed icon text input boxes being wider than expected
- Fixed visual glitches with highlights and selections in the hex editor view
- Fixed loading of custom data processor nodes
- Fixed locking layout not working correctly
- Fixed textEditor line numbers were still partially rendered despite mShowLineNumbers being set to false (#1669)
- Fixed edit -> Jump To -> Current Pattern not always resetting request correctly
- Fixed not being able to close certain modal popups with the close button on the title bar (#1659)
- Fixed multiple file reload popups stacking on top of each other (#1654)
- Fixed text editor cursor not showing up anymore
- Fixed command palette losing focus when pressing Alt
- Fixed frame rate getting unlocked when inputs are being processed (#1632)
- Fixed selectable text behaving weirdly when selecting
- Fixed buffer display data processor node being way too wide
- Fixed exporting selection doesn't export last byte
- Fixed missing window icon under wayland (#1633)
- Fixed cell highlighting in hex editor view overlapping at non-integer scale factors
- Fixed main window being hard to resize when bytes are selected in the hex editor view
- Fixed diff table in diffing view displaying incorrect end address (#1627)
- Fixed store hanging when updating all entries in some cases
- Fixed highlight and tooltip flickering when hovering over highlighted patterns
- Fixed icons not being fractionally scaled anymore
- Fixed settings being overwritten sometimes on crash
- Fixed unifont characters being scaled wrongly
- Fixed settings values being uninitialized by default
- Fixed crash on some platforms due to empty main menu bar
- Fixed memory leak when closing ImHex
- Fixed file changed popup showing up when saving memory mapped file
Pattern Language
- Fixed many many many crashes during parsing
in
variable values now persistent between parser runs againout
variable values are now selectable and copyable in pattern editor- Added support for
#undef
- Preprocessing now works on a token level instead of on character level which makes it behave much more like expected
- Custom types can now be
null
-initialized - Added
std::file::create_directories()
function
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Low power mode fix, better unicode font handling, fixes for Arch Linux
Improvements
- ImHex properly enters low power mode on Linux again now
- Unifont characters are now being loaded at their native size to make them crisp like the Western characters
- The splash screen is not being scaled weirdly anymore now
- Added a hint when the advanced data information section didn't yield any result
Bug Fixes
- Fixed linking to libyara. This should resolve issues with e.g the AUR version not starting anymore
- Fixed issues with the auto updater on Windows
- Fixed view providers not being saved to project files correctly
- Fixed highlighting not updating correctly when changing Bookmark regions
- Fixed crash upload setting not being disabled correctly when choosing "Deny" in the initial popup
- Fixed custom base address issues with the data inspector and copy as array options
- Fixed advanced data information not showing up correctly
- Fixed selection being removed sometimes when right clicking it
- Fixed infinite loop when exporting a selection to a file
- Fixed control characters ending up in log files
- Fixed a crash when opening an unopenable file
Pattern Language
- Fixed various issues with the virtual file system
- Fixed data decompression functions not extracting the entire data
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!
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!