Skip to content

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

Compare
Choose a tag to compare
@WerWolv WerWolv released this 28 Dec 00:00
· 944 commits to master since this release

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 PayPal donate button

Full Changelog: v1.31.0...v1.32.0