Releases: WerWolv/ImHex
Bug fixes
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!
New builtin types, pointers to arrays and many bug fixes
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!
More unicode fixes
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.gstruct Test { 12, 34, 56 }
for a Struct namedTest
with 3 variables
- Passing custom types to e.g
- 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!
Unicode systems support, custom local variables and http proxies
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 ofO(N)
- Search algorithm is now
- 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!
Reworked hash view, Brazilian Portuguese translation
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 andsizeof($)
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
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Bug fixes
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 andsizeof($)
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
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Hex editor view rewrite, flathub release
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 andsizeof($)
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
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Yara console module, type forward declarations, default parameters and tons of bug fixes
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!
Windows defender issues and bug fixes
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!
Pattern language offset and other crash fixes
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!