Skip to content

Releases: WerWolv/ImHex

Eradicate window flickering, improve pattern highlighting performance, crash fixes

09 Jul 06:39
811214d
Compare
Choose a tag to compare

Improvements

  • Pattern hover highlighting performance has been drastically improved
  • Completely eradicated any Window flickering during resizes on Windows and the Web
  • Toolbar items now have tooltips
  • The web version can now be properly used on mobile and with touch inputs
  • Custom plugins can once again be built using the SDK
  • File dialogs now belong to the ImHex window on Linux. Thanks a lot to @btzy

Bug Fixes

  • Fixed a crash that triggered when an auto backup was being created on macOS
  • Fixed liblzma not being configured in correctly on all OSes
  • Having debug mode enabled in a pattern no longer makes the UI lag out after evaluation
  • The find and goto popups no longer go transparent when opening a combo box within them
  • Fixed a rare crash when re-evaluating patterns while a sorting option was selected

Pattern Language

  • Added builtin crc8, crc16 and crc64 hash functions
  • The crc functions can now also be used with strings
  • Fixed a bug where patterns passed to non-type template parameters would get hidden
  • std::mem::find_sequence and co are now HUNDREDS of times faster. This includes std::mem::MagicSearcher

Previous Release

Additions

  • Added basic process memory provider support to macOS
    • Due to limitations on Apple's side, this only works with SIP disabled
  • View providers can now be renamed
  • Added options to load files into memory or read data from disk instead, independent of the file size
  • Find results can now be exported as CSVs, TSVs and JSONs. Thanks a lot to @SparkyTD
  • Added various per-byte highlights to the hex editor minimap
    • The minimap can now display the highlighting of individual bytes
  • Added a digital signal pattern visualizer
  • The pattern data view now uses nicer colors and strings to convey information
  • The recent files section on the welcome screen can now be collapsed
  • You can now scroll the hex editor view faster by holding down CTRL or even faster when holding down SHIFT + CTRL
  • Added a --reset-settings CLI command to clear all settings in case something gets corrupted

Improvements

  • Drastically improved rendering times
  • Added a small moon icon to the welcome screen in nightly builds
  • Providers now close instantly
  • The hex editor view no longer scrolls when jumping to a selection that's already visible
  • Auto project backups are now enabled by default
  • Custom data inspector rows now display a nice error message in the UI when they encountered an error
  • Bookmark reordering now doesn't swap entries anymore and actually works as expected
  • ImHex now displays a little dot in the close button on macOS if there's unsaved changes
  • Auto backups no longer remove the dirty status of providers anymore
  • SIGINT signals are now being handled to not close ImHex immediately anymore but to show a popup
  • UI scaling factors are now limited between 0.1x and 4.0x to prevent issues
    • Larger values are still possible by CTRL-clicking into the slider and entering a value manually
  • PageUp + PageDown no longer affects the hex editor selection
  • Row highlighting in the pattern data view is now less bright so the text has a better contrast

Bug Fixes

  • ImHex can now properly load files stored on network drives on Windows
  • Fixed crashes when searching for certain regex strings
  • Fixed an infinite loop when searching forward/backward with CTRL + F
  • Fixed loading of layout files
  • Fixed fonts being blurry in some cases
  • Bookmark regions can now be set to 1 byte
  • Fixes Alt and Ctrl being swapped in the text editor on macOS
  • Fixed disassembler always disassembling in little endian
  • ImHex no longer tries to store files in system paths now
  • Fixed an infinite loop when exporting data selections to a file. Thanks a lot to @FireNX70
  • Fixed file name display issues with files that contain unicode characters
  • Fixed content store getting stuck sometimes when updating multiple items at once

Pattern Language

  • continue and break now work as one would expect
  • Added std::core::execute_function()
  • Arrays can now be initialized using the following syntax:
    • u32 myArray[5] = { 1, 2, 3, 4, 5 };
  • Added support for constants inside of custom types
  • Unsigned, signed and floating point patterns no longer display their hex value in their value by default
  • Fixed [[no_unique_address]] not working correctly with bitfields
  • Patterns are now highlighted in the hex editor view when hovering over them in the pattern data view
  • Patterns in the pattern data view table are now highlighted when they are fully selected in the hex editor view
  • Bitfields can now be properly edited in the pattern data view
  • The filter in the pattern data view now gets correctly applied again after re-evaluating a pattern

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

Hotfix hotfix hotfix for "Rendering speed optimizations, bitfield improvements"

29 Jun 19:57
Compare
Choose a tag to compare

Hot fix because default folders even still weren't created correctly on Linux and macOS
Additionally this patch fixes that standard magic files weren't bundled properly anymore and a crash on exit

ImHex is extremely smooth now:
https://twitter.com/WerWolv/status/1806807278416281861

Additions

  • Added basic process memory provider support to macOS
    • Due to limitations on Apple's side, this only works with SIP disabled
  • View providers can now be renamed
  • Added options to load files into memory or read data from disk instead, independent of the file size
  • Find results can now be exported as CSVs, TSVs and JSONs. Thanks a lot to @SparkyTD
  • Added various per-byte highlights to the hex editor minimap
    • The minimap can now display the highlighting of individual bytes
  • Added a digital signal pattern visualizer
  • The pattern data view now uses nicer colors and strings to convey information
  • The recent files section on the welcome screen can now be collapsed
  • You can now scroll the hex editor view faster by holding down CTRL or even faster when holding down SHIFT + CTRL
  • Added a --reset-settings CLI command to clear all settings in case something gets corrupted

Improvements

  • Drastically improved rendering times
  • Added a small moon icon to the welcome screen in nightly builds
  • Providers now close instantly
  • The hex editor view no longer scrolls when jumping to a selection that's already visible
  • Auto project backups are now enabled by default
  • Custom data inspector rows now display a nice error message in the UI when they encountered an error
  • Bookmark reordering now doesn't swap entries anymore and actually works as expected
  • ImHex now displays a little dot in the close button on macOS if there's unsaved changes
  • Auto backups no longer remove the dirty status of providers anymore
  • SIGINT signals are now being handled to not close ImHex immediately anymore but to show a popup
  • UI scaling factors are now limited between 0.1x and 4.0x to prevent issues
    • Larger values are still possible by CTRL-clicking into the slider and entering a value manually
  • PageUp + PageDown no longer affects the hex editor selection
  • Row highlighting in the pattern data view is now less bright so the text has a better contrast

Bug Fixes

  • ImHex can now properly load files stored on network drives on Windows
  • Fixed crashes when searching for certain regex strings
  • Fixed an infinite loop when searching forward/backward with CTRL + F
  • Fixed loading of layout files
  • Fixed fonts being blurry in some cases
  • Bookmark regions can now be set to 1 byte
  • Fixes Alt and Ctrl being swapped in the text editor on macOS
  • Fixed disassembler always disassembling in little endian
  • ImHex no longer tries to store files in system paths now
  • Fixed an infinite loop when exporting data selections to a file. Thanks a lot to @FireNX70
  • Fixed file name display issues with files that contain unicode characters
  • Fixed content store getting stuck sometimes when updating multiple items at once

Pattern Language

  • continue and break now work as one would expect
  • Added std::core::execute_function()
  • Arrays can now be initialized using the following syntax:
    • u32 myArray[5] = { 1, 2, 3, 4, 5 };
  • Added support for constants inside of custom types
  • Unsigned, signed and floating point patterns no longer display their hex value in their value by default
  • Fixed [[no_unique_address]] not working correctly with bitfields
  • Patterns are now highlighted in the hex editor view when hovering over them in the pattern data view
  • Patterns in the pattern data view table are now highlighted when they are fully selected in the hex editor view
  • Bitfields can now be properly edited in the pattern data view
  • The filter in the pattern data view now gets correctly applied again after re-evaluating a pattern

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

Hotfix hotfix for "Rendering speed optimizations, bitfield improvements"

29 Jun 18:08
Compare
Choose a tag to compare

Hot fix because default folders still weren't created correctly on Linux and macOS
Additionally this patch fixes that standard magic files weren't bundled properly anymore

ImHex is extremely smooth now:
https://twitter.com/WerWolv/status/1806807278416281861

Additions

  • Added basic process memory provider support to macOS
    • Due to limitations on Apple's side, this only works with SIP disabled
  • View providers can now be renamed
  • Added options to load files into memory or read data from disk instead, independent of the file size
  • Find results can now be exported as CSVs, TSVs and JSONs. Thanks a lot to @SparkyTD
  • Added various per-byte highlights to the hex editor minimap
    • The minimap can now display the highlighting of individual bytes
  • Added a digital signal pattern visualizer
  • The pattern data view now uses nicer colors and strings to convey information
  • The recent files section on the welcome screen can now be collapsed
  • You can now scroll the hex editor view faster by holding down CTRL or even faster when holding down SHIFT + CTRL
  • Added a --reset-settings CLI command to clear all settings in case something gets corrupted

Improvements

  • Drastically improved rendering times
  • Added a small moon icon to the welcome screen in nightly builds
  • Providers now close instantly
  • The hex editor view no longer scrolls when jumping to a selection that's already visible
  • Auto project backups are now enabled by default
  • Custom data inspector rows now display a nice error message in the UI when they encountered an error
  • Bookmark reordering now doesn't swap entries anymore and actually works as expected
  • ImHex now displays a little dot in the close button on macOS if there's unsaved changes
  • Auto backups no longer remove the dirty status of providers anymore
  • SIGINT signals are now being handled to not close ImHex immediately anymore but to show a popup
  • UI scaling factors are now limited between 0.1x and 4.0x to prevent issues
    • Larger values are still possible by CTRL-clicking into the slider and entering a value manually
  • PageUp + PageDown no longer affects the hex editor selection
  • Row highlighting in the pattern data view is now less bright so the text has a better contrast

Bug Fixes

  • ImHex can now properly load files stored on network drives on Windows
  • Fixed crashes when searching for certain regex strings
  • Fixed an infinite loop when searching forward/backward with CTRL + F
  • Fixed loading of layout files
  • Fixed fonts being blurry in some cases
  • Bookmark regions can now be set to 1 byte
  • Fixes Alt and Ctrl being swapped in the text editor on macOS
  • Fixed disassembler always disassembling in little endian
  • ImHex no longer tries to store files in system paths now
  • Fixed an infinite loop when exporting data selections to a file. Thanks a lot to @FireNX70
  • Fixed file name display issues with files that contain unicode characters
  • Fixed content store getting stuck sometimes when updating multiple items at once

Pattern Language

  • continue and break now work as one would expect
  • Added std::core::execute_function()
  • Arrays can now be initialized using the following syntax:
    • u32 myArray[5] = { 1, 2, 3, 4, 5 };
  • Added support for constants inside of custom types
  • Unsigned, signed and floating point patterns no longer display their hex value in their value by default
  • Fixed [[no_unique_address]] not working correctly with bitfields
  • Patterns are now highlighted in the hex editor view when hovering over them in the pattern data view
  • Patterns in the pattern data view table are now highlighted when they are fully selected in the hex editor view
  • Bitfields can now be properly edited in the pattern data view
  • The filter in the pattern data view now gets correctly applied again after re-evaluating a pattern

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

Hotfix for "Rendering speed optimizations, bitfield improvements"

29 Jun 16:53
Compare
Choose a tag to compare

Hot fix because default folders weren't created correctly

ImHex is extremely smooth now:
https://twitter.com/WerWolv/status/1806807278416281861

Additions

  • Added basic process memory provider support to macOS
    • Due to limitations on Apple's side, this only works with SIP disabled
  • View providers can now be renamed
  • Added options to load files into memory or read data from disk instead, independent of the file size
  • Find results can now be exported as CSVs, TSVs and JSONs. Thanks a lot to @SparkyTD
  • Added various per-byte highlights to the hex editor minimap
    • The minimap can now display the highlighting of individual bytes
  • Added a digital signal pattern visualizer
  • The pattern data view now uses nicer colors and strings to convey information
  • The recent files section on the welcome screen can now be collapsed
  • You can now scroll the hex editor view faster by holding down CTRL or even faster when holding down SHIFT + CTRL
  • Added a --reset-settings CLI command to clear all settings in case something gets corrupted

Improvements

  • Drastically improved rendering times
  • Added a small moon icon to the welcome screen in nightly builds
  • Providers now close instantly
  • The hex editor view no longer scrolls when jumping to a selection that's already visible
  • Auto project backups are now enabled by default
  • Custom data inspector rows now display a nice error message in the UI when they encountered an error
  • Bookmark reordering now doesn't swap entries anymore and actually works as expected
  • ImHex now displays a little dot in the close button on macOS if there's unsaved changes
  • Auto backups no longer remove the dirty status of providers anymore
  • SIGINT signals are now being handled to not close ImHex immediately anymore but to show a popup
  • UI scaling factors are now limited between 0.1x and 4.0x to prevent issues
    • Larger values are still possible by CTRL-clicking into the slider and entering a value manually
  • PageUp + PageDown no longer affects the hex editor selection
  • Row highlighting in the pattern data view is now less bright so the text has a better contrast

Bug Fixes

  • ImHex can now properly load files stored on network drives on Windows
  • Fixed crashes when searching for certain regex strings
  • Fixed an infinite loop when searching forward/backward with CTRL + F
  • Fixed loading of layout files
  • Fixed fonts being blurry in some cases
  • Bookmark regions can now be set to 1 byte
  • Fixes Alt and Ctrl being swapped in the text editor on macOS
  • Fixed disassembler always disassembling in little endian
  • ImHex no longer tries to store files in system paths now
  • Fixed an infinite loop when exporting data selections to a file. Thanks a lot to @FireNX70
  • Fixed file name display issues with files that contain unicode characters
  • Fixed content store getting stuck sometimes when updating multiple items at once

Pattern Language

  • continue and break now work as one would expect
  • Added std::core::execute_function()
  • Arrays can now be initialized using the following syntax:
    • u32 myArray[5] = { 1, 2, 3, 4, 5 };
  • Added support for constants inside of custom types
  • Unsigned, signed and floating point patterns no longer display their hex value in their value by default
  • Fixed [[no_unique_address]] not working correctly with bitfields
  • Patterns are now highlighted in the hex editor view when hovering over them in the pattern data view
  • Patterns in the pattern data view table are now highlighted when they are fully selected in the hex editor view
  • Bitfields can now be properly edited in the pattern data view
  • The filter in the pattern data view now gets correctly applied again after re-evaluating a pattern

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

Rendering speed optimizations, bitfield improvements

29 Jun 09:54
Compare
Choose a tag to compare

ImHex is extremely smooth now:
https://twitter.com/WerWolv/status/1806807278416281861

Additions

  • Added basic process memory provider support to macOS
    • Due to limitations on Apple's side, this only works with SIP disabled
  • View providers can now be renamed
  • Added options to load files into memory or read data from disk instead, independent of the file size
  • Find results can now be exported as CSVs, TSVs and JSONs. Thanks a lot to @SparkyTD
  • Added various per-byte highlights to the hex editor minimap
    • The minimap can now display the highlighting of individual bytes
  • Added a digital signal pattern visualizer
  • The pattern data view now uses nicer colors and strings to convey information
  • The recent files section on the welcome screen can now be collapsed
  • You can now scroll the hex editor view faster by holding down CTRL or even faster when holding down SHIFT + CTRL
  • Added a --reset-settings CLI command to clear all settings in case something gets corrupted

Improvements

  • Drastically improved rendering times
  • Added a small moon icon to the welcome screen in nightly builds
  • Providers now close instantly
  • The hex editor view no longer scrolls when jumping to a selection that's already visible
  • Auto project backups are now enabled by default
  • Custom data inspector rows now display a nice error message in the UI when they encountered an error
  • Bookmark reordering now doesn't swap entries anymore and actually works as expected
  • ImHex now displays a little dot in the close button on macOS if there's unsaved changes
  • Auto backups no longer remove the dirty status of providers anymore
  • SIGINT signals are now being handled to not close ImHex immediately anymore but to show a popup
  • UI scaling factors are now limited between 0.1x and 4.0x to prevent issues
    • Larger values are still possible by CTRL-clicking into the slider and entering a value manually
  • PageUp + PageDown no longer affects the hex editor selection
  • Row highlighting in the pattern data view is now less bright so the text has a better contrast

Bug Fixes

  • ImHex can now properly load files stored on network drives on Windows
  • Fixed crashes when searching for certain regex strings
  • Fixed an infinite loop when searching forward/backward with CTRL + F
  • Fixed loading of layout files
  • Fixed fonts being blurry in some cases
  • Bookmark regions can now be set to 1 byte
  • Fixes Alt and Ctrl being swapped in the text editor on macOS
  • Fixed disassembler always disassembling in little endian
  • ImHex no longer tries to store files in system paths now
  • Fixed an infinite loop when exporting data selections to a file. Thanks a lot to @FireNX70
  • Fixed file name display issues with files that contain unicode characters
  • Fixed content store getting stuck sometimes when updating multiple items at once

Pattern Language

  • continue and break now work as one would expect
  • Added std::core::execute_function()
  • Arrays can now be initialized using the following syntax:
    • u32 myArray[5] = { 1, 2, 3, 4, 5 };
  • Added support for constants inside of custom types
  • Unsigned, signed and floating point patterns no longer display their hex value in their value by default
  • Fixed [[no_unique_address]] not working correctly with bitfields
  • Patterns are now highlighted in the hex editor view when hovering over them in the pattern data view
  • Patterns in the pattern data view table are now highlighted when they are fully selected in the hex editor view
  • Bitfields can now be properly edited in the pattern data view
  • The filter in the pattern data view now gets correctly applied again after re-evaluating a pattern

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

Hex Editor Insert Mode, File update tracker and new logo

03 Jun 20:53
Compare
Choose a tag to compare

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

GitHub donate button Patreon donate button PayPal donate button

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