Skip to content

Releases: WerWolv/ImHex

Startup fix

28 Dec 15:37
Compare
Choose a tag to compare

This release is identical to v1.36.1 except that it fixes a crash on startup when ImHex is launched for the first time.

Improvements

  • After an update, all items that were downloaded from the content store are now being updated as well
  • The command palette can now be closed by clicking on the menu bar

Bug Fixes

  • Fixed various issues with shortcuts not working
    • Updating to this version will force-reset all shortcuts you customized back to their default to clear this issue
    • This will only be done once. You may customize your shortcuts again afterwards
  • Fixed an issue that caused the CTRL key to sometimes get stuck on Keyboard layouts that mapped ALT GR to CTRL + ALT
    • This was most noticeable when writing patterns in the pattern editor
  • Fixed highlighting in interactive tutorials not working correctly anymore
  • Fixed saving files from the web version not working correctly
  • Fixed achievements in the web version not being saved correctly
  • Fixed a crash that would occur when disassembling bytes
  • Fixed occasional crashes when resizing the window
  • Fixed description of the "--reset-settings" subcommand
  • Fixed some rendering issues with the description text editor in bookmarks

Previous Release

Features

  • Added a loop node to the data processor
    • This should allow for much more complex data processing
  • Added support for enumerating system fonts on Linux. Thanks to @ColinKinloch
  • The pattern hover tooltip of the hex editor now shows the offset to its parent
  • Massive improvements to the Pattern Editor. Huge thanks to @paxcut
    • The editor works much more like other editors
    • There's way too many improvements to list them all. Just try it out yourself!
  • Added a quarter precision option to the IEEE 754 tool
  • Added customizable segment separators to the hex editor view
  • Added annotations to the data information view where big entropy dips or spikes are detected
  • Added an export option to the disassembler view. Thanks to @BioTheWolff
  • Added "Disassemble selection" option to the Edit menu
  • Added Image base address and Image load address options to the disassembler
  • Added option to paste strings into the hex editor view

Improvements

  • Improved and modernized the look and feel of various views
  • Demangling now works correctly with identifiers that do not start with an underscore
  • The data processor now runs in the background so it doesn't freeze up the UI anymore
  • The table in the diff view is now resizable
  • When clicking on a diff in the diff view, the same region is now being selected in the main hex editor view
  • Hovering over patterns in the hex editor should not tank the frame rate anymore in some cases
  • Pattern descriptions are now being displayed in the accept pattern popup
  • stderr is not being completely suppressed anymore now
  • Inline visualizers may now be used in custom data inspector rows
  • Improved 3D visualizer error handling
  • Improved naming and shortcut display for various menu items
  • Command palette results (such as the calculator) may now be clicked to move their result back into the palette input
  • Updated ImGui to latest version

Bug Fixes

  • ImHex won't try to connect to the API anymore on startup now if server contact is disabled
  • The log is no longer being spammed with error messages now if an invalid data region is being viewed in a process data provider
  • Fixed 3D visualizer textures not being rendered correctly
  • Fixed issues when hashing large data regions
  • Fixed multiple race conditions that could crash ImHex while patterns were being sorted
  • Achievements should no longer reset now after a restart
  • Fixed issue where CRC64 parameters in the hash view were limited to 32 bit
  • Fixed issues with shortcuts using CTRL instead of CMD on macOS
  • Fixed inserting bytes at the start of the file using insert mode not working correctly

Pattern Language

  • Added various new built-in types
    • Types such as hex::type::Json for decoding json strings or hex::type::Instruction for disassembling bytes.
  • Added option to import existing patterns into other patterns.
    • You can for example use import * from elf as ELF; and then place the ELF type anywhere you want to decode ELF data there.
  • Added lz4 decompression support
  • Added reinterpret-expressions in the form of pattern as OtherType.
    • If both sides have the same size, this will interpret the bits of patterns as a OtherType type
  • Added functions to change the pattern color palette and reset the current palette progress
  • Processing patterns after evaluation has finished should be much quicker now
  • The bitmap visualizer can now handle indexed colormaps. Thanks to @paxcut
  • Added [[fixed_size]] attribute to set the minimum size of a type to a fixed value or throw an error if the type gets larger than this
  • Enums are no longer evaluated on every use
  • Added user-defined literals in the form of 123_literal or "Test"_literal(1, 2, 3)
  • Added a IMPORTED macro that's defined when a file is being imported by another
  • Various preprocessor and lexer improvements. Thanks to @paxcut

Note

  • Ubuntu 22.04 support has been dropped in favor of 24.04 and 24.10. Please use the AppImage or Flatpak if you're still on a older version
  • Support for Fedora 39 has been dropped in favor of Fedora 41. Please use the AppImage or Flatpak if you're still on a older version
  • The macOS builds require macOS 13.0 now at least since GitHub retired their old macOS 12.0 runners. Please update your machine to the latest macOS version to keep using ImHex or compile it yourself from sources.

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

Shortcut fixes

28 Dec 13:33
Compare
Choose a tag to compare

Improvements

  • After an update, all items that were downloaded from the content store are now being updated as well
  • The command palette can now be closed by clicking on the menu bar

Bug Fixes

  • Fixed various issues with shortcuts not working
    • Updating to this version will force-reset all shortcuts you customized back to their default to clear this issue
    • This will only be done once. You may customize your shortcuts again afterwards
  • Fixed an issue that caused the CTRL key to sometimes get stuck on Keyboard layouts that mapped ALT GR to CTRL + ALT
    • This was most noticeable when writing patterns in the pattern editor
  • Fixed highlighting in interactive tutorials not working correctly anymore
  • Fixed saving files from the web version not working correctly
  • Fixed achievements in the web version not being saved correctly
  • Fixed a crash that would occur when disassembling bytes
  • Fixed occasional crashes when resizing the window
  • Fixed description of the "--reset-settings" subcommand
  • Fixed some rendering issues with the description text editor in bookmarks

Previous Release

Features

  • Added a loop node to the data processor
    • This should allow for much more complex data processing
  • Added support for enumerating system fonts on Linux. Thanks to @ColinKinloch
  • The pattern hover tooltip of the hex editor now shows the offset to its parent
  • Massive improvements to the Pattern Editor. Huge thanks to @paxcut
    • The editor works much more like other editors
    • There's way too many improvements to list them all. Just try it out yourself!
  • Added a quarter precision option to the IEEE 754 tool
  • Added customizable segment separators to the hex editor view
  • Added annotations to the data information view where big entropy dips or spikes are detected
  • Added an export option to the disassembler view. Thanks to @BioTheWolff
  • Added "Disassemble selection" option to the Edit menu
  • Added Image base address and Image load address options to the disassembler
  • Added option to paste strings into the hex editor view

Improvements

  • Improved and modernized the look and feel of various views
  • Demangling now works correctly with identifiers that do not start with an underscore
  • The data processor now runs in the background so it doesn't freeze up the UI anymore
  • The table in the diff view is now resizable
  • When clicking on a diff in the diff view, the same region is now being selected in the main hex editor view
  • Hovering over patterns in the hex editor should not tank the frame rate anymore in some cases
  • Pattern descriptions are now being displayed in the accept pattern popup
  • stderr is not being completely suppressed anymore now
  • Inline visualizers may now be used in custom data inspector rows
  • Improved 3D visualizer error handling
  • Improved naming and shortcut display for various menu items
  • Command palette results (such as the calculator) may now be clicked to move their result back into the palette input
  • Updated ImGui to latest version

Bug Fixes

  • ImHex won't try to connect to the API anymore on startup now if server contact is disabled
  • The log is no longer being spammed with error messages now if an invalid data region is being viewed in a process data provider
  • Fixed 3D visualizer textures not being rendered correctly
  • Fixed issues when hashing large data regions
  • Fixed multiple race conditions that could crash ImHex while patterns were being sorted
  • Achievements should no longer reset now after a restart
  • Fixed issue where CRC64 parameters in the hash view were limited to 32 bit
  • Fixed issues with shortcuts using CTRL instead of CMD on macOS
  • Fixed inserting bytes at the start of the file using insert mode not working correctly

Pattern Language

  • Added various new built-in types
    • Types such as hex::type::Json for decoding json strings or hex::type::Instruction for disassembling bytes.
  • Added option to import existing patterns into other patterns.
    • You can for example use import * from elf as ELF; and then place the ELF type anywhere you want to decode ELF data there.
  • Added lz4 decompression support
  • Added reinterpret-expressions in the form of pattern as OtherType.
    • If both sides have the same size, this will interpret the bits of patterns as a OtherType type
  • Added functions to change the pattern color palette and reset the current palette progress
  • Processing patterns after evaluation has finished should be much quicker now
  • The bitmap visualizer can now handle indexed colormaps. Thanks to @paxcut
  • Added [[fixed_size]] attribute to set the minimum size of a type to a fixed value or throw an error if the type gets larger than this
  • Enums are no longer evaluated on every use
  • Added user-defined literals in the form of 123_literal or "Test"_literal(1, 2, 3)
  • Added a IMPORTED macro that's defined when a file is being imported by another
  • Various preprocessor and lexer improvements. Thanks to @paxcut

Note

  • Ubuntu 22.04 support has been dropped in favor of 24.04 and 24.10. Please use the AppImage or Flatpak if you're still on a older version
  • Support for Fedora 39 has been dropped in favor of Fedora 41. Please use the AppImage or Flatpak if you're still on a older version
  • The macOS builds require macOS 13.0 now at least since GitHub retired their old macOS 12.0 runners. Please update your machine to the latest macOS version to keep using ImHex or compile it yourself from sources.

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

We're back!

24 Dec 13:05
Compare
Choose a tag to compare

First of all, massive thanks to @paxcut, @iTrooz and @jumanji144 who fixed and maintained ImHex while I was not around.

Features

  • Added a loop node to the data processor
    • This should allow for much more complex data processing
  • Added support for enumerating system fonts on Linux. Thanks to @ColinKinloch
  • The pattern hover tooltip of the hex editor now shows the offset to its parent
  • Massive improvements to the Pattern Editor. Huge thanks to @paxcut
    • The editor works much more like other editors
    • There's way too many improvements to list them all. Just try it out yourself!
  • Added a quarter precision option to the IEEE 754 tool
  • Added customizable segment separators to the hex editor view
  • Added annotations to the data information view where big entropy dips or spikes are detected
  • Added an export option to the disassembler view. Thanks to @BioTheWolff
  • Added "Disassemble selection" option to the Edit menu
  • Added Image base address and Image load address options to the disassembler
  • Added option to paste strings into the hex editor view

Improvements

  • Improved and modernized the look and feel of various views
  • Demangling now works correctly with identifiers that do not start with an underscore
  • The data processor now runs in the background so it doesn't freeze up the UI anymore
  • The table in the diff view is now resizable
  • When clicking on a diff in the diff view, the same region is now being selected in the main hex editor view
  • Hovering over patterns in the hex editor should not tank the frame rate anymore in some cases
  • Pattern descriptions are now being displayed in the accept pattern popup
  • stderr is not being completely suppressed anymore now
  • Inline visualizers may now be used in custom data inspector rows
  • Improved 3D visualizer error handling
  • Improved naming and shortcut display for various menu items
  • Command palette results (such as the calculator) may now be clicked to move their result back into the palette input
  • Updated ImGui to latest version

Bug Fixes

  • ImHex won't try to connect to the API anymore on startup now if server contact is disabled
  • The log is no longer being spammed with error messages now if an invalid data region is being viewed in a process data provider
  • Fixed 3D visualizer textures not being rendered correctly
  • Fixed issues when hashing large data regions
  • Fixed multiple race conditions that could crash ImHex while patterns were being sorted
  • Achievements should no longer reset now after a restart
  • Fixed issue where CRC64 parameters in the hash view were limited to 32 bit
  • Fixed issues with shortcuts using CTRL instead of CMD on macOS
  • Fixed inserting bytes at the start of the file using insert mode not working correctly

Pattern Language

  • Added various new built-in types
    • Types such as hex::type::Json for decoding json strings or hex::type::Instruction for disassembling bytes.
  • Added option to import existing patterns into other patterns.
    • You can for example use import * from elf as ELF; and then place the ELF type anywhere you want to decode ELF data there.
  • Added lz4 decompression support
  • Added reinterpret-expressions in the form of pattern as OtherType.
    • If both sides have the same size, this will interpret the bits of patterns as a OtherType type
  • Added functions to change the pattern color palette and reset the current palette progress
  • Processing patterns after evaluation has finished should be much quicker now
  • The bitmap visualizer can now handle indexed colormaps. Thanks to @paxcut
  • Added [[fixed_size]] attribute to set the minimum size of a type to a fixed value or throw an error if the type gets larger than this
  • Enums are no longer evaluated on every use
  • Added user-defined literals in the form of 123_literal or "Test"_literal(1, 2, 3)
  • Added a IMPORTED macro that's defined when a file is being imported by another
  • Various preprocessor and lexer improvements. Thanks to @paxcut

Note

  • Ubuntu 22.04 support has been dropped in favor of 24.04 and 24.10. Please use the AppImage or Flatpak if you're still on a older version
  • Support for Fedora 39 has been dropped in favor of Fedora 41. Please use the AppImage or Flatpak if you're still on a older version
  • The macOS builds require macOS 13.0 now at least since GitHub retired their old macOS 12.0 runners. Please update your machine to the latest macOS version to keep using ImHex or compile it yourself from sources.

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

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