Skip to content

Releases: WerWolv/ImHex

Bug fixes

26 Jul 14:35
Compare
Choose a tag to compare

Changelog

Additions

  • Added filter option to bookmarks view

Improvements

  • Downloaded content store items no longer get placed in the /tmp directory when using the AppImage or Flatpak release. Thanks to @catsout
  • Improved rendering of bitfield entries in the pattern data view. Thanks to @Diadlo

Bug Fixes

  • Fixed various hex editor highlighting, tooltips and selection issues
  • Fixed duplicate pattern data view entries when sorting the list
  • Fixed various issues with multi-byte visualizers in the hex editor view
  • Fixed various base address related issues
  • Fixed Edit -> Create Bookmark menu item not working correctly
  • Fixed search not working as expected

Pattern Language

  • Bitwise operators no longer act like boolean operators
  • Fixed passing dynamically sized types to functions

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

New builtin types, pointers to arrays and many bug fixes

16 Jul 11:56
Compare
Choose a tag to compare

Changelog

Improvements

  • Upgraded codebase to C++23
  • Possibly added support for Windows 7 (untested)

Bug Fixes

  • Fixed advanced decoding hex editor row not being rendered correctly
  • Fixed editing floats, doubles and strings in the data inspector
  • Fixed opening files with spaces in their name on Linux not working correctly
  • Fixed crash when closing the file picker without choosing a file
  • Fixed duplicate file chooser popup entries not being selectable
  • Fixed CTRL + O only working when the hex editor view is selected
  • Fixed user folders not loading correctly on startup
  • Fixed crash when searching for an empty string
  • Fixed crash on exit

Pattern Language

  • Added u24, u48. u96, s24, s48 and s96 builtin types
  • Added support for pointers to arrays. Thanks a lot to @PredatorCZ
  • Added support for pointers with signed values. Thanks a lot to @PredatorCZ
  • Greatly improved token creation and consuming. Refactored Lexer and Parser
  • Fixed invalid placement syntax parsing
  • Improved error message when a invalid token was encountered
  • Improved querying patterns by address
  • Fixed name of returned static array entry patterns
  • Fixed crash when querying value of a zero-length string
  • Fixed namespace resolution issues
  • Fixed overriding the color of static arrays. Thanks to @PredatorCZ
  • Fixed passing placed variables to functions
  • Fixed In/Out variables not working correctly. Thanks to @PredatorCZ
  • Removed empty string patterns from the pattern data view

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

More unicode fixes

07 Jul 07:01
Compare
Choose a tag to compare

Changelog

Heyo @shutingrz :)

Additions

  • Added a backdrop image when no views are open

Improvements

  • Automatically restore default layout when a file is opened but no views are open
  • Improved stuttering when resizing or minimizing/maximizing the window
  • Improved the Full Sources tar size. Thanks to @iTrooz
  • Updated various dependencies

Bug Fixes

  • Fixed opening files with spaces in their name on Linux
  • Fixed various more Unicode issues

Pattern Language

  • Custom type formatting
    • Passing custom types to e.g std::print now prints e.g struct Test { 12, 34, 56 } for a Struct named Test with 3 variables
  • Fixed a crash when using provider operators

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

Unicode systems support, custom local variables and http proxies

04 Jul 20:24
716d6ae
Compare
Choose a tag to compare

Changelog

Additions

  • Added ability to remove bytes from a file. Thanks to @Diadlo
  • Added a macOS styled icon to the macOS build and updated the icon on other platforms Huge thanks to @zaafonin
  • Added back missing hex editor selection byte count value to the hex editor view footer
  • Added support for HTTP and SOCKS5 Proxies. Thanks a lot to @shirok1

Improvements

  • Fixed many issues with the macOS .dmg file, and the Linux AppImage and Flatpak. Massive thanks to @iTrooz
  • Massive CI Improvements Huge thanks to @iTrooz
    • This includes much improved build times, ArchLinux support, automatic release uploading and many other improvements
  • Switched over to GCC on macOS
    • This allows for more cutting edge C++ features to be used in the future
  • Lots of Unicode related crashes and fixes
    • Paths are now consistently handled correctly on all platforms
    • ImHex now works correctly when launched from a location with non-ASCII characters in its path or on systems with a user account name with unicode characters in it
  • Massively improved pattern highlighting performance
    • Search algorithm is now O(log2(N)) instead of O(N)
  • Greatly improved the performance of static arrays in the pattern data view
  • Improved the scrolling behaviour in the hex editor view

Bug Fixes

  • Fixed byte editing not working correctly in the hex editor view
  • Fixed AppImage crashing when opening the file chooser
  • Fixed crash when parsing invalid wide strings
  • Fixed Resize and Insert bytes popup not working correctly
  • Fixed fallback language being accidentally set to Portuguese. Thanks to @LFriede
  • Fixed misaligned hex editor selection hightlighting in very big files
  • Fixed double clicking on the "... (Double-click to see more items)" item in arrays in the pattern data view. Thanks to @Diadlo
  • Fixed a few hex editor highlighting crashes
  • Fixed hash function names not being localized
  • Fixed crash when undocking the hex editor view
  • Fixed various localization issues
  • Fixed hex editor selection moving with SHIFT + Arrow Keys not working as expected
  • Fixed a crash when copying text to the clipboard on non-english locales
  • Fixed system theme detection issues on all OSes
  • Fixed In/Out variables not being evaluated correctly when loading a pattern through the context menu

Pattern Language

  • Added support for using custom types as local variables
    • This means you can now define structs, unions or bitfields and use and assign values to them inside of functions
  • Fixed endian inversion when passing variables to functions in big-endian mode
  • Fixed In/Out variables not working correctly when using any pre-processor directives

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

Reworked hash view, Brazilian Portuguese translation

03 Jun 12:04
Compare
Choose a tag to compare

Changelog

Additions

  • Added Brazilian Portuguese translation. Huge thanks to @dgsmiley18
  • Added IEEE 754 floating point number experimenting tool
  • Complete rewrote the Hash view
    • It now supports displaying multiple different Hash types at the same time
    • Configured hashes now also appear in the hex editor when selecting a region, hovering the cursor over it and holding down SHIFT
  • Added tooltip to all Visualizer data processor nodes that display the visualization a lot bigger

Improvements

  • Improved contrast of the pattern language error popup text color in light mode

Bug Fixes

  • Fixed editing values in the hex editor
  • Fixed another scroll issue in the hex editor
  • Fixed pasting bytes in the hex editor view
  • Fixed bookmarks automatically collapsing when editing their name
  • Fixed a crash when the OS didn't configure monitors correctly
    • This mainly happens when using Windows Remote Desktop

Previous Changelog

Additions

  • Rewrite the entire Hex Editor View
    • The Editor now supports displaying data in various different ways. For example it can combine 4 bytes into one cell and display it as floating point number, or 2 bytes into a signed integer
    • Added setting to change color and transparency of selection
    • Added much better tooltips for Patterns and Bookmarks
      • Hold SHIFT for more information
    • Improved popups for find, goto, base address setting and byte insertion
    • Greatly improved search speed and efficiency
    • Fixed hex view not scrolling when moving the cursor off screen
    • Fixed many inconsistencies
  • Added support for custom languages for the Wikipedia terms searcher. Thanks to @xtexChooser
  • Added bit invert option to data inspector
  • Added bool, DOS Date and DOS Time decoder to data inspector

Pattern Language

  • Added addressof($) to get the data base address and sizeof($) to get the data size
  • Make bitfields be more on-par with structs and allow conditionals to be used in there
  • Added support for while-sized paddings
  • Fixed pattern language errors not being displayed in the console correctly
  • Fixed MIME pragma not working correctly
  • Fixed including files that include other files themselves

Improvements

  • Added ImHex to FlatHub. Thanks a lot to @Mailaender
  • Fixed various issues with the AppImage. Thanks a lot to @iTrooz
    • Opening the file browser still crashes the AppImage, drag-n-drop your files onto ImHex to open them

Floating point decoding
RGBA8 decoding


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

Bug fixes

28 May 18:35
Compare
Choose a tag to compare

Changelog

Bug fixes

  • Fixed bookmark menu entry causing wrong region to be marked
  • Fixed Hex Editor selection scrolling being broken
  • Fixed parsing of hex escaped character literals in the pattern language
  • Fixed crash on exit
  • Fixed error again that broke building on GCC 12.1.0 (as used on Arch Linux)

Previous Changelog

Additions

  • Rewrite the entire Hex Editor View
    • The Editor now supports displaying data in various different ways. For example it can combine 4 bytes into one cell and display it as floating point number, or 2 bytes into a signed integer
    • Added setting to change color and transparency of selection
    • Added much better tooltips for Patterns and Bookmarks
      • Hold SHIFT for more information
    • Improved popups for find, goto, base address setting and byte insertion
    • Greatly improved search speed and efficiency
    • Fixed hex view not scrolling when moving the cursor off screen
    • Fixed many inconsistencies
  • Added support for custom languages for the Wikipedia terms searcher. Thanks to @xtexChooser
  • Added bit invert option to data inspector
  • Added bool, DOS Date and DOS Time decoder to data inspector

Pattern Language

  • Added addressof($) to get the data base address and sizeof($) to get the data size
  • Make bitfields be more on-par with structs and allow conditionals to be used in there
  • Added support for while-sized paddings
  • Fixed pattern language errors not being displayed in the console correctly
  • Fixed MIME pragma not working correctly
  • Fixed including files that include other files themselves

Improvements

  • Added ImHex to FlatHub. Thanks a lot to @Mailaender
  • Fixed various issues with the AppImage. Thanks a lot to @iTrooz
    • Opening the file browser still crashes the AppImage, drag-n-drop your files onto ImHex to open them

Floating point decoding
RGBA8 decoding


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 view rewrite, flathub release

28 May 10:23
857aadf
Compare
Choose a tag to compare

Changelog

Additions

  • Rewrite the entire Hex Editor View
    • The Editor now supports displaying data in various different ways. For example it can combine 4 bytes into one cell and display it as floating point number, or 2 bytes into a signed integer
    • Added setting to change color and transparency of selection
    • Added much better tooltips for Patterns and Bookmarks
      • Hold SHIFT for more information
    • Improved popups for find, goto, base address setting and byte insertion
    • Greatly improved search speed and efficiency
    • Fixed hex view not scrolling when moving the cursor off screen
    • Fixed many inconsistencies
  • Added support for custom languages for the Wikipedia terms searcher. Thanks to @xtexChooser
  • Added bit invert option to data inspector
  • Added bool, DOS Date and DOS Time decoder to data inspector

Pattern Language

  • Added addressof($) to get the data base address and sizeof($) to get the data size
  • Make bitfields be more on-par with structs and allow conditionals to be used in there
  • Added support for while-sized paddings
  • Fixed pattern language errors not being displayed in the console correctly
  • Fixed MIME pragma not working correctly
  • Fixed including files that include other files themselves

Improvements

  • Added ImHex to FlatHub. Thanks a lot to @Mailaender
  • Fixed various issues with the AppImage. Thanks a lot to @iTrooz
    • Opening the file browser still crashes the AppImage, drag-n-drop your files onto ImHex to open them

Floating point decoding
RGBA8 decoding


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

Yara console module, type forward declarations, default parameters and tons of bug fixes

18 Apr 00:18
Compare
Choose a tag to compare

Changelog

Additions

  • Added support for the new Yara console module

Pattern Language

  • The Pattern Language has been separated from ImHex and was moved to its own repository
    • This was in part made possible by @Diadlo's separation of the pattern rendering code from the rest of the runtime
    • A separate repository also now allows other people to include the Pattern Language in their own applications
  • Types can now be forward declared
  • Functions can now have default parameters
  • Bitfield fields are now selectable
  • Comments behind preprocessor defines are now correctly handled
  • Fixed recursive types not working correctly
  • Fixed caching for static array values
  • Fixed indentation for inlined variables
  • Fixed highlight colors of arrays not matching color shown in pattern data view
  • Fixed struct members that overlap with [[no_unique_address]] members not being highlighted
  • Fixed pointer patterns causing crashes when they are rendered

Improvements

  • Make ImHex build with -Wall -Wextra -Werror on all platforms
  • Fixed tons of clang-tidy warnings
  • Improved / fixed the AppImage build
  • Recently opened file entries are now being removed if the file doesn't exist anymore
  • Disabled various menu items when no provider is loaded
  • Multi-viewport support has been enabled on Linux again, providing ImHex is running on a X11 system
    • Multi-viewport support is still very buggy on Wayland
  • Improved the about page
  • Pattern values are now being cached. Thanks to @Diadlo
  • Mathematical expressions can now be used in the hex editor goto function
  • Improved look and feel of many hexadecimal input fields
  • Improved string search filtering
  • Moved bookmark delete button to their header
  • Information view plots now don't capture scroll anymore and fit better into the rest of the interface
  • Undo and Redo buttons are only available now if that action is actually available
  • Data inspector endian and format radio boxes are now sliders

Bug Fixes

  • Fixed crash when setting a custom font and that file can't be found
  • Fixed various bugs and crashes related to filesystem operations
  • Fixed various bugs with the Math Evaluator engine
  • Fixed highlighting not properly being cleared when switching to a different provider
  • Prevent imgui.ini from being created
  • Deferred calls are now handled in a thread-safe manner
  • Fixed interface layout not being saved properly in some cases
  • Fixed theme not changing properly on startup. Thanks to @PredatorCZ
  • Fixed issues where bookmarks not always created highlights correctly
  • Fixed displaying of file stat times in information view
  • Fixed crash on linux when opened file is being modified. Thanks to @PredatorCZ

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

Windows defender issues and bug fixes

03 Mar 14:19
Compare
Choose a tag to compare

Changelog

Improvements

  • Yara rules are no longer bundled with ImHex directly anymore.
    • Having them bundled made a bunch of different anti virus tools very sad so they once again need to be downloaded manually from the content store
  • Patterns that use types which have been defined through a using statement now properly display their new type name in the pattern data view

Bug Fixes

  • Fixed searching not working at all
  • Fixed many text boxes not being writable at all

Pattern Language

  • Fixed crash when using control flow statements without a value
  • Fixed control flow statements not working correctly inside of custom types
  • Fixed crash when using attributes
  • Fixed major memory leak when using the [[format]] attribute
  • Fixed crash when passing a value as a auto parameter to a 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

Pattern language offset and other crash fixes

01 Mar 18:29
Compare
Choose a tag to compare

Changelog

Addition

  • Added alpha preview to the color picker tool

Improvements

  • Improved display of the base address setter popup
  • Make std::mem::find_sequence_in_range return -1 when the value couldn't be found

Bug Fixes

  • Fixed bug where the current offset in the pattern runtime was getting messed up when calling a function
  • Fixed a crash when entering too much text in various input text boxes
  • Fixed a crash when searching for empty strings or bytes

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