Skip to content

Releases: WerWolv/ImHex

Low power mode fix, better unicode font handling, fixes for Arch Linux

23 Mar 10:06
Compare
Choose a tag to compare

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

image

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
  • 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!

GitHub donate button Patreon donate button PayPal donate button

Drastically lower CPU usage, better error recovery, fixed import statements

02 Mar 16:06
Compare
Choose a tag to compare

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

image

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
  • 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!

GitHub donate button Patreon donate button PayPal donate button

Better data analysis, Myers diffing algorithm and UI improvements

25 Feb 22:00
Compare
Choose a tag to compare

image

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
  • 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!

GitHub donate button Patreon donate button PayPal donate button

Working M1 build, working custom plugins

04 Jan 21:28
Compare
Choose a tag to compare

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 of myStruct with a value greater than 5
  • 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 or 0xAABBCC 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...
Read more

[Packaging fixes] Web and M1 version, Workspaces, Tutorials, Auto backups and more

28 Dec 18:53
Compare
Choose a tag to compare

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 of myStruct with a value greater than 5
  • 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 or 0xAABBCC 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
  • 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!

Read more

Web and M1 version, Workspaces, Tutorials, Auto backups and more

28 Dec 00:00
Compare
Choose a tag to compare

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 of myStruct with a value greater than 5
  • 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 or 0xAABBCC 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
  • 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!

GitHub donate button Patreon donate button

Read more

Command Line Interface, .NET scripts, Achievements

24 Sep 18:52
Compare
Choose a tag to compare

Additions

  • Added a command line interface to ImHex. Huge thanks to @iTrooz
    • Get started by typing imhex --help
  • 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

image


If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!

GitHub donate button Patreon donate button PayPal donate button

Font loading and favorite pattern fixes

24 Jun 15:47
Compare
Choose a tag to compare

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!

GitHub donate button Patreon donate button PayPal donate button

Pattern language debugger, [[export]]ing local patterns, pattern data view improvements

24 Jun 10:29
Compare
Choose a tag to compare

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!

GitHub donate button Patreon donate button PayPal donate button

Custom layouts, Spanish translation, try-catch statements

21 May 09:01
Compare
Choose a tag to compare

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 new Extras 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!

GitHub donate button Patreon donate button PayPal donate button