Releases: WerWolv/ImHex
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!
Pattern language refactor and editable data inspector
Changelog
Addition
- Added basic editing support to the data inspector
- Simply double click the type you want to edit and then enter your new value there
- Not all types can currently be edited but the majority of it can
- Added custom font and font size setting
- Added long doubles to the data inspector
- Added setting where the user can add additional search paths which will be considered throughout ImHex. Thanks a lot to @PredatorCZ
- Added help text to data processor to tell the user how to start using it
Pattern Language
- Massive refactor of the pattern language
- The entire pattern language now switched to using smart pointers instead of doing manual memory management. This should prevent the majority of memory leaks that were present before.
- Allow all variable attributes to be applied to types directly so all their instances will have those attributes applied
- Added
#pragma bitfield_order
which applies the[[left_to_right]]
or[[right_to_left]]
attribute to all bitfields by default - Added
[[single_color]]
attribute which forces all children of a pattern to have the same color. Thanks to @PredatorCZ - Fixed a crash with using
#include
. Thanks to @Diadlo - Arrays and custom types are now properly getting treated as references so they can be passed to functions without getting weird behaviour
- Added
std::mem::find_sequence_in_range
. Thanks a lot to @PredatorCZ- This function works the same as
std::mem::find_sequence
but takes two additional parameters to specify the start and end address of the search performed
- This function works the same as
- Fixed off-by-one error when calculating unsized array sizes. Thanks to @Dyddye
Improvements
- Automatically disable borderless window mode then an Intel HD GPU is being detected.
- This prevents the black boarder / offset rendering from appearing which is caused by a bug in the Intel OpenGL driver
- This detection can be overwritten by manually setting the
hex.builtin.setting.interface.force_borderless_window_mode
setting to1
in yoursettings.json
- Disable buffering on log files so their full content is always being written to disk
- Improved error handling of the content store
- The content store now only tries to list files in folders that are actually writable
- ImHex will no longer try to download (and fail) to download files into folders without permissions
- Increased store load timeout to 30 seconds
- This should allow you to use the content store even if you're behind tons of proxies
- Improved ImHex restarting user experience
- Instead of just immediately closing ImHex when a setting was changed that needed a restart, ImHex now correctly prompts if you want to restart it.
- Content from the ImHex-Patterns repository is now getting shipped by default
Bug Fixes
- Fixed opening files with unicode characters in their path
- Fixed ImHex not loading plugins correctly on first launch
- Fixed undo points not being created correctly
- Fixed pasting bytes into ImHex in certain cases
- Fixed log files being formatted incorrectly
- Fixed a crash when scrolling through the hex editor too quickly
- Fixed a bug where editing a byte and then scrolling down would cause all content of the hex editor view to disappear
- Fixed banner and logo images being corrupted in certain cases. Thanks a lot to @PredatorCZ
- Fixed circular dependency when building ImHex which caused issues on certain Linux distros
- Fixed
imgui.ini
file sometimes being created in the current working directory - Fixed crash when trying to read from an empty file
- Fixed crash when saving projects
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Data processor improvements, variable placements inside of structs, Japanese translation
Changelog
Addition
- Added better help messages for when Plugins are missing or outdated
- Added German translation to the Windows plugin
- Added Japanese translation. Thanks a lot to @gnuhead-chieb
- Added highlighting to matched yara rules
Data processor
- Added Digram, Layered Distribution, Byte Distribution and Image visualizer nodes to the data processor
- Added selected region node
Pattern Language
- Improved integer literal parsing, added hex-representation of floats
- Allow assigning to global variables inside of structs
- Allow variable placements inside of structs. This is especially useful for calculated pointers
- Fixed issues with #pragma once and #include
- Added
[[left_to_right]]
and[[right_to_left]]
attribute for bitfields - Added
[[format_entries]]
attribute to add a formatting function to all array entries - Fixed precedence of comparison operators
- Allow patterns with nested children (structs, bitfields, arrays and unions) to be selected by clicking on them in the pattern data view
- Correctly disallow usage of negative values for array and padding sizes
- Fixed control flow statements (return, continue and break) not being applied correctly
- Fixed scopes not always being popped correctly. Thanks to @Diadlo
Improvements
- Massively refactored ImHex.
- The main application is now completely free of any ImHex-related code and purely acts as a loader
- The built-in plugin and libimhex now contain all functionality
- Improved integer parsing in the pattern language
- Drastically improved highlighting performance
- Only show file chooser popup if there's actually files to list
- Disable bookmark toolbar icon if no bytes are selected
- Added a dedicated hex input text box
Bug Fixes
- Fixed strings still being displayed incorrectly in the pattern data view
- Fixed pattern source code being deleted wrongly when switching to a different data provider
- Fixed docking to main window not always working
- Fixed icon being broken on macOS
- Fixed incorrect capstone include path
- Fixed a crash when opening files from the recent files list. Thanks to @Diadlo
- Fixed crash when opening a read only file on Linux. Thanks to @bigfoot547
- Fixed hex editor search popup buttons not working correctly. Thanks to @Diadlo
- Fixed columns in diff view being misaligned. Thanks to @twevs
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!