Releases: WerWolv/ImHex
Nightly Builds
Nightly 220b5f9 Changelog
- patterns: Update pattern language
- patterns: Update pattern language
Windows installer, data inspector edit and updater fixes
Improvements
- The Windows installers are now signed
- Huge thanks to SignPath for their help and sponsoring the certificate
- The icons look slightly less blurry on low-resolution screens now
- There's no longer any gaps in the selection of hex editor cells now with certain scaling factors
- There's now better error messages when opening a data source failed. No more "Unspecified Error"
- Opening a file that has already been opened now switches to its existing tab instead of just displaying an error
- The auto-updater on macOS now automatically unpacks the new version instead of just opening the dmg
Bug Fixes
- Fixed the Windows installer not correctly replacing all files
- Fixed dependencies of the deb packages
- The Extended ASCII display is no longer active by default now
- If you upgraded to v1.38.0 before, you can disable it now by clicking on the Paragraph icon in the hex editor footer. If you didn't upgrade to that version, it will now be disabled by default
- Fixed a bunch of issues with the updater that caused it to not work correctly, mainly on Windows
- Fixed various issues with the pattern editor. Thanks to @paxcut
- Fixed editing values in the data inspector not correctly working
- Fixed a crash when clicking Cancel while opening a remote SSH File
- Fixed a off-by-one in the process memory data source that would cause the first byte of a region to not display correctly
- Fixed a crash when using the @ command palette command
- Fixed sorting in the find view table being inverted
- Fixed pattern files saved by the pattern editor not getting truncated on disk correctly
- Fixed a crash when repeatedly opening files by drag-n-dropping them onto the ImHex Window
Previous Version
Features
- Added multiple new Data Sources
- A UDP Provider that can display UDP packets received on a specified port
- A SSH Provider that can connect to remote machines over SSH and read files from there using SSH or SFTP
- This is pretty cool as it allows live-inspection of the RAM of remote machines over the network by opening
/dev/mem
- This is pretty cool as it allows live-inspection of the RAM of remote machines over the network by opening
- Tons of improvements to the Pattern Editor. Huge thanks to @paxcut
- The pattern editor now supports semantic syntax highlighting for the PatternLanguage!
- Matching brackets are now highlighted when the cursor is next to one
- Patterns can now be opened in an external Editor and ImHex will update the pattern live when the file changes
- Parenthesis and quotes are now auto-closed when typing them
- Breakpoints in the pattern editor can now be toggled by clicking on the line numbers instead.
- Fixed various scrolling and scrollbar issues
- New and updated Languages!
- Added a French translation. Thanks a lot to @antigeky
- Added a Polish translation. Thanks a lot to @Shadow775711
- Added a Ukrainian translation. Thanks a lot to @RutarAndriy
- Updated the Simplified Chinese translation. Thanks to @only9464
- It's possible now to automatically chose the current system language with a fallback to English if the language is not available
- Added mutliple new data inspector rows
- Added a "Custom Encoding String" row, allowing quick decoding of selections using custom character encodings
- Added a fp24 (24-bit floating point) data inspector row
- Added a bfloat data inspector row
- Added a configurable fixed-point data inspector row
- Added a new Save Editor Mode and Simplified Pattern Editor
- Marking Patterns with
[[hex::editor_export]]will now make them show up in a new tab in the Pattern Data View- This allows for displaying only a limited number of fields in a simplified manner and letting you edit them
- Additionally, this allows you to create Game Save File Editors using ImHex's Pattern Language!
- By writing a pattern with these attributes, you can load the pattern using the new
imhex --save-editor <pattern_file>option to show only a simplified save editor UI - This can also be done using the Web Version of ImHex by appending
?save-editor=<gist_id>to the URL where<gist_id>is the ID of a GitHub Gist containing the pattern file
- By writing a pattern with these attributes, you can load the pattern using the new
- Marking Patterns with
- Added a "Go To" command to the command palette for quickly jumping to specific offsets
- Added new "Go To First/Last Element" buttons to the data inspector
- Added option to show extended/unprintable ASCII characters in the Hex Editor view
- Vastly improved the auto updater
- Added support for updating nightly builds
- Added support for switching between stable and nightly channels
- Added command palette option to open / focus a specific view
- Added option to skip over large chunks of bytes with the same value
- Added all tools to the command palette for quick access
- Added a Markdown renderer to ImHex
- The Changelog in the About page now uses this to render the changelog nicely
- Bookmark comments can now also use Markdown formatting
- Added a new File Information command line option that can show various information about a file without opening it
- This can be used by running
imhex --file-info <file_path> - If this file is supported by a pattern, it will also be loaded and additional information can be displayed
- This works by it calling the pattern's
get_data_descriptionfunction if it exists which may then return any markdown text to be displayed - This information will also be displayed in the Data Information view
- This works by it calling the pattern's
- This can be used by running
- Added a "Decode as Encoding" option to the right-click menu in the Hex Editor view for quickly decoding selected bytes using a specific character encoding
- It's now possible to jump to Yara matches in the Hex Editor by clicking on them
- Added a region sidebar list to the Intel Hex and Motorola SREC providers. Thanks to @sonorousfreq
- Added keyboard shortcuts to jump to next/previous difference in the Diff View. Thanks to @Zman350x
- There's now a interactive help button in the title bar that can be clicked to get information about specific elements in the UI
- Added a RGBA8 and RGB565 minimap visualizer
- Added option to the Minimap to shade cells based on the magnitude of the byte values
- Added a Copy and Edit option to the right click menu of patterns in the Pattern Data View
- Replaced the useless Constants View with a new Constants Search option in the Find View
- This lets you search for a predefined list of common constants such as CRC polynomials
- These can also be extended by simple constant json files
Improvements
- Startup times have been significantly improved
- On my machine, ImHex now starts up in ~60ms instead of taking multiple seconds
- ImHex now also uses significantly less RAM. Idle it uses around 60MB now instead of over 200MB before
- Pretty much everything has a nice new icon now
- ImHex now builds and runs on 32-bit Windows systems
- No official 32-bit builds will be provided, but you can build ImHex from source for 32-bit Windows now if needed using MSVC
- Decluttered and modernized many parts of the UI
- The main menu items now update automatically depending on what view is currently focused
- This makes it much easier to figure out which option affects what, especially for things like "Open" which can apply to multiple views
- Added Subpixel Font Antialiasing. Huge thanks to @paxcut
- This makes all text look significantly nicer, especially on lower resolution screens
- Fonts can now be more freely chosen using a new Font File picker that updates immediately
- Font names in the picker are now also shown in their respective font
- Frame Rate limiting is now much more precise and ImHex will wake up from sleep less often
- ImHex will now also not limit the frame rate as much if there's any animations playing to allow for a smoother feel
- Updated all dependencies to their latest versions
- The Import Pattern popup now shows up much quicker. Thanks to @shewitt-au
- Improved handling of cached providers such as the GDB provider to provide more up-to-date data and avoid hangs
- The GDB provider now works without the server supporting the NoAckMode
- This allows ImHex to be used for example to connect to a Nintendo Switch running Atmosphere
- Modernized the TTY Console view with a new layout and a nice diagram showing what the different options affect
- Instead of just minimizing the window when clicking the close button on macOS, it will now close the currently opened providers and only when clicked again on the welcome screen it will fully exit ImHex
- Individual plugins may now be disabled from the Plugins settings page
- ImHex now no longer uses the name "Providers" but instead uses "Data Sources" to better reflect what they do
- Most of the Hex Editor settings are now saved
- Included a launcher script with most builds that can be added to the PATH to easily launch ImHex from the command line
- Integer Literals may now be used in binary patterns. For example
12 34 ?? u32le(123) - Hashes are now being calculated in a background thread as to not freeze up the UI anymore
Bug Fixes
- Certain achievements now no longer trigger every time ImHex is started
- Fixed a crash when using the Edit -> Disassemble Selection option before the Disassembly view has been opened
- Undo now works for importing patterns in the pattern editor
- Fixed many crashes related to the pattern data view
- Things like sorting or filtering should now work much more reliably
- Fixed the
--reset-settingscommand line option not working - Fixed searching for negative numbers in the find view not working correctly
- Fixed some crashes on Wayland when exiting ImHex
- Empty Intel Hex and Motorola SRec files no longer appear as being one byte long
- Fixed issues when reordering toolbar items
- Fixed the Open File in Explorer opti...
Better Pattern Editor, new Data Sources, Save Editor Mode
Features
- Added multiple new Data Sources
- A UDP Provider that can display UDP packets received on a specified port
- A SSH Provider that can connect to remote machines over SSH and read files from there using SSH or SFTP
- This is pretty cool as it allows live-inspection of the RAM of remote machines over the network by opening
/dev/mem
- This is pretty cool as it allows live-inspection of the RAM of remote machines over the network by opening
- Tons of improvements to the Pattern Editor. Huge thanks to @paxcut
- The pattern editor now supports semantic syntax highlighting for the PatternLanguage!
- Matching brackets are now highlighted when the cursor is next to one
- Patterns can now be opened in an external Editor and ImHex will update the pattern live when the file changes
- Parenthesis and quotes are now auto-closed when typing them
- Breakpoints in the pattern editor can now be toggled by clicking on the line numbers instead.
- Fixed various scrolling and scrollbar issues
- New and updated Languages!
- Added a French translation. Thanks a lot to @antigeky
- Added a Polish translation. Thanks a lot to @Shadow775711
- Added a Ukrainian translation. Thanks a lot to @RutarAndriy
- Updated the Simplified Chinese translation. Thanks to @only9464
- It's possible now to automatically chose the current system language with a fallback to English if the language is not available
- Added mutliple new data inspector rows
- Added a "Custom Encoding String" row, allowing quick decoding of selections using custom character encodings
- Added a fp24 (24-bit floating point) data inspector row
- Added a bfloat data inspector row
- Added a configurable fixed-point data inspector row
- Added a new Save Editor Mode and Simplified Pattern Editor
- Marking Patterns with
[[hex::editor_export]]will now make them show up in a new tab in the Pattern Data View- This allows for displaying only a limited number of fields in a simplified manner and letting you edit them
- Additionally, this allows you to create Game Save File Editors using ImHex's Pattern Language!
- By writing a pattern with these attributes, you can load the pattern using the new
imhex --save-editor <pattern_file>option to show only a simplified save editor UI - This can also be done using the Web Version of ImHex by appending
?save-editor=<gist_id>to the URL where<gist_id>is the ID of a GitHub Gist containing the pattern file
- By writing a pattern with these attributes, you can load the pattern using the new
- Marking Patterns with
- Added a "Go To" command to the command palette for quickly jumping to specific offsets
- Added new "Go To First/Last Element" buttons to the data inspector
- Added option to show extended/unprintable ASCII characters in the Hex Editor view
- Vastly improved the auto updater
- Added support for updating nightly builds
- Added support for switching between stable and nightly channels
- Added command palette option to open / focus a specific view
- Added option to skip over large chunks of bytes with the same value
- Added all tools to the command palette for quick access
- Added a Markdown renderer to ImHex
- The Changelog in the About page now uses this to render the changelog nicely
- Bookmark comments can now also use Markdown formatting
- Added a new File Information command line option that can show various information about a file without opening it
- This can be used by running
imhex --file-info <file_path> - If this file is supported by a pattern, it will also be loaded and additional information can be displayed
- This works by it calling the pattern's
get_data_descriptionfunction if it exists which may then return any markdown text to be displayed - This information will also be displayed in the Data Information view
- This works by it calling the pattern's
- This can be used by running
- Added a "Decode as Encoding" option to the right-click menu in the Hex Editor view for quickly decoding selected bytes using a specific character encoding
- It's now possible to jump to Yara matches in the Hex Editor by clicking on them
- Added a region sidebar list to the Intel Hex and Motorola SREC providers. Thanks to @sonorousfreq
- Added keyboard shortcuts to jump to next/previous difference in the Diff View. Thanks to @Zman350x
- There's now a interactive help button in the title bar that can be clicked to get information about specific elements in the UI
- Added a RGBA8 and RGB565 minimap visualizer
- Added option to the Minimap to shade cells based on the magnitude of the byte values
- Added a Copy and Edit option to the right click menu of patterns in the Pattern Data View
- Replaced the useless Constants View with a new Constants Search option in the Find View
- This lets you search for a predefined list of common constants such as CRC polynomials
- These can also be extended by simple constant json files
Improvements
- Startup times have been significantly improved
- On my machine, ImHex now starts up in ~60ms instead of taking multiple seconds
- ImHex now also uses significantly less RAM. Idle it uses around 60MB now instead of over 200MB before
- Pretty much everything has a nice new icon now
- ImHex now builds and runs on 32-bit Windows systems
- No official 32-bit builds will be provided, but you can build ImHex from source for 32-bit Windows now if needed using MSVC
- Decluttered and modernized many parts of the UI
- The main menu items now update automatically depending on what view is currently focused
- This makes it much easier to figure out which option affects what, especially for things like "Open" which can apply to multiple views
- Added Subpixel Font Antialiasing. Huge thanks to @paxcut
- This makes all text look significantly nicer, especially on lower resolution screens
- Fonts can now be more freely chosen using a new Font File picker that updates immediately
- Font names in the picker are now also shown in their respective font
- Frame Rate limiting is now much more precise and ImHex will wake up from sleep less often
- ImHex will now also not limit the frame rate as much if there's any animations playing to allow for a smoother feel
- Updated all dependencies to their latest versions
- The Import Pattern popup now shows up much quicker. Thanks to @shewitt-au
- Improved handling of cached providers such as the GDB provider to provide more up-to-date data and avoid hangs
- The GDB provider now works without the server supporting the NoAckMode
- This allows ImHex to be used for example to connect to a Nintendo Switch running Atmosphere
- Modernized the TTY Console view with a new layout and a nice diagram showing what the different options affect
- Instead of just minimizing the window when clicking the close button on macOS, it will now close the currently opened providers and only when clicked again on the welcome screen it will fully exit ImHex
- Individual plugins may now be disabled from the Plugins settings page
- ImHex now no longer uses the name "Providers" but instead uses "Data Sources" to better reflect what they do
- Most of the Hex Editor settings are now saved
- Included a launcher script with most builds that can be added to the PATH to easily launch ImHex from the command line
- Integer Literals may now be used in binary patterns. For example
12 34 ?? u32le(123) - Hashes are now being calculated in a background thread as to not freeze up the UI anymore
Bug Fixes
- Certain achievements now no longer trigger every time ImHex is started
- Fixed a crash when using the Edit -> Disassemble Selection option before the Disassembly view has been opened
- Undo now works for importing patterns in the pattern editor
- Fixed many crashes related to the pattern data view
- Things like sorting or filtering should now work much more reliably
- Fixed the
--reset-settingscommand line option not working - Fixed searching for negative numbers in the find view not working correctly
- Fixed some crashes on Wayland when exiting ImHex
- Empty Intel Hex and Motorola SRec files no longer appear as being one byte long
- Fixed issues when reordering toolbar items
- Fixed the Open File in Explorer option not working correctly on Windows
- Fixed Auto Backups not being properly created after the first time. Thanks to @paxcut
- If a crash happens in a background thread, ImHex is now able to properly handle the crash instead of just silently exiting
Artifacts
- Added new ARM64 builds for Windows and Linux
- Added new Snap packages for Linux
- Added new Flatpak packages for Linux
- Added a Fedora 43 rpm package
- Added a Ubuntu 24.04 deb package
Pattern Language
- Templates are now much better supported. Huge thanks to @AkiSakurai
- They can now be nested properly
- Their scoping now works much more sensibly
- If you used Templates before, you might need to adjust your patterns. The scope of parameters passed to templates is now that of the template instantiation, not where the variable is actually used. So it's no longer necessary to use
parent
- If you used Templates before, you might need to adjust your patterns. The scope of parameters passed to templates is now that of the template instantiation, not where the variable is actually used. So it's no longer necessary to use
sizeof(SomeType)now works when there's pointers involved- Many functions that previously only worked with the main section are now section-aware
- Conditionals now support short-circuit evaluation
- Fixed many fixes that caused crashes when errors happened in attributes
- Pattern post-processing finishes now much much quicker
- Parsing of floating point literals is now no longer locale dependent
- Fixed patterns passed to functions by references having their name changed unexpectedly
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Bug fixes for Massive UX improvements, Custom Disassemblers, MSVC support
Bug Fixes
- Fixed a regression with the frame rate limiting logic which caused ImHex to use a lot of CPU on Idle
- Fixed a rendering issue on macOS when the native menu bar is used
- Fixed a few issues with OpenGL texture deallocations
Previous Version
Features
- ImHex now properly supports HiDPI scaling on Windows, macOS and Linux!
- ImHex now uses the native menu bar on macOS
- You can now set separate fonts for the main UI, the Hex Editor and the Pattern Editor
- Added a new ARM64 AppImage release as well as a WebAssembly release to self-host ImHexWeb
- ImHex can now be fully compiled using MSVC and ClangCL on Windows! Huge thanks to @mrexodia
- The main releases are still built with MinGW but this should hopefully make it easier to contribute to ImHex!
- We now provide build attestation for each build generated through our CI so you can verify exactly from which run an artifact has been built
- Added initial support for custom disassemblers
- This lets you define disassemblers for custom instruction sets using a simple JSON format
- Added messaging support for macOS and Linux
- This allows you to use ImHex as a command line tool on macOS and Linux to control the currently open ImHex instance
- For example
imhex --open "SomeFile.bin" --select 0x100 0x200will open the SomeFile.bin file in the current instance and then select addresses 0x100 to 0x200
- Added Russian translation! Huge thanks to @Lemon4ksan
- Added a title bar backdrop color gradients and accent colors
- Added utf16 and utf32 string and char types
- Added option to randomize window title
- In case some stupid anti-cheat is trying to detect ImHex in the future :)
- Added new --select, --pattern and --debug-mode subcommands
- Added support for OpenGL post processing shaders
- This lets you load custom shaders now by placing a
shader.vertandshader.fragfile in one of the ImHex resource folders. - These shaders can apply any post processing to the rendered image
- This lets you load custom shaders now by placing a
- Added New File option to the GNOME launcher and a --new cli option
- Added support for scanning binaries for UTF-8 strings
- Added visibility toggle to hide bookmark highlighting
- Added option to fit hex columns to screen width
- Added setting to disable hex editor highlights entirely
- Added a preview to the Edit -> Copy as options
- Added "Jump to address" option to data inspector row context menu
- Added option to change radix of numbers in hex editor view
- Added context menu and next/previous buttons to the data inspector
- Added option to move selection back to hex editor footer
- Added option to copy data as escaped string
- Added shortcut for Copy as -> Custom Encoding
Improvements
- Replaced the Windows and Linux app icon with the one from the Papyrus Icon Project!
- The DMG on macOS now looks a lot nicer than before
- Revamped the frame rate limiting system to make ImHex feel much less laggy by default and make it use less CPU resources
- ImHex now uses Jetbrains Mono as its default font instead of the ImGui default font
- The settings window can now be resized
- The ImHex window is now hidden on macOS when close button is pressed
- Allowed all highlights to overlap each other
- Allowed the favorite column in the pattern data view to be hidden
- Allowed command palette to be closed by clicking on the menu bar
- All installed content store items are now force updated after an ImHex update
Bug Fixes
- Fixed various issues with the auto updater
- RGBA8 data processor node not working correctly
- Very slow processing of large pattern console outputs
- Windows forwarder application not working when piping output
- Writing not working correctly through a provider view
- Crash on Linux if XDG_SESSION_TYPE is not set
- Crash when closing ImHex with one or more view providers open
- Uninitialized buffers in resize operation
- Exception being thrown while loading projects
- Crash when certain pattern language exceptions were thrown
- Pattern Editor shortcuts not working correctly on different languages (#2085)
- Pattern Editor Find and Replace history (#2064)
- Crash in 3D Visualizer, improved error messages (#2062)
- Disable bogus Keypad to function key conversions on macOS
- Empty regions in Intel Hex and Motorola SREC files not being displayed correctly
- Make sure provider switch buttons and close button don't overlap
- Hang when filtering for a large number of items in the pattern data view
- Off-by-one when calculating hashes of selected regions
- ImHex freezing on AMD GPUs when resizing
- Rendering issues with text editor in bookmark view
- Ctrl sometimes getting stuck when pressing ALT GR and other keys at the same time
- Missing endian setting in ARM64 disassembler
- Clicking past end of line in text editor putting cursor before last character
Pattern Language
- The evaluator now tries to keep as many patterns as it possibly can when an error occurs
- Added cursor positions to the error stack traces
- Exported global variables are now displayed in the output
- Added support for rvalue assignments inside of structs
- Fixed various issues when importing patterns as types
- Make decompress functions return number of read bytes
- Allow #pragma magic to index from the end of the data with negative addresses
- Fixed error spam when encountering an error in the Lexer
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Bug fixes for Massive UX improvements, Custom Disassemblers, MSVC support Latest
Bug Fixes
- Fixed a crash when closing ImHex, mainly noticeable on macOS
- Fixed an ID collision when multiple fonts with the same name are installed on the system
Previous Version
Features
- ImHex now properly supports HiDPI scaling on Windows, macOS and Linux!
- ImHex now uses the native menu bar on macOS
- You can now set separate fonts for the main UI, the Hex Editor and the Pattern Editor
- Added a new ARM64 AppImage release as well as a WebAssembly release to self-host ImHexWeb
- ImHex can now be fully compiled using MSVC and ClangCL on Windows! Huge thanks to @mrexodia
- The main releases are still built with MinGW but this should hopefully make it easier to contribute to ImHex!
- We now provide build attestation for each build generated through our CI so you can verify exactly from which run an artifact has been built
- Added initial support for custom disassemblers
- This lets you define disassemblers for custom instruction sets using a simple JSON format
- Added messaging support for macOS and Linux
- This allows you to use ImHex as a command line tool on macOS and Linux to control the currently open ImHex instance
- For example
imhex --open "SomeFile.bin" --select 0x100 0x200will open the SomeFile.bin file in the current instance and then select addresses 0x100 to 0x200
- Added Russian translation! Huge thanks to @Lemon4ksan
- Added a title bar backdrop color gradients and accent colors
- Added utf16 and utf32 string and char types
- Added option to randomize window title
- In case some stupid anti-cheat is trying to detect ImHex in the future :)
- Added new --select, --pattern and --debug-mode subcommands
- Added support for OpenGL post processing shaders
- This lets you load custom shaders now by placing a
shader.vertandshader.fragfile in one of the ImHex resource folders. - These shaders can apply any post processing to the rendered image
- This lets you load custom shaders now by placing a
- Added New File option to the GNOME launcher and a --new cli option
- Added support for scanning binaries for UTF-8 strings
- Added visibility toggle to hide bookmark highlighting
- Added option to fit hex columns to screen width
- Added setting to disable hex editor highlights entirely
- Added a preview to the Edit -> Copy as options
- Added "Jump to address" option to data inspector row context menu
- Added option to change radix of numbers in hex editor view
- Added context menu and next/previous buttons to the data inspector
- Added option to move selection back to hex editor footer
- Added option to copy data as escaped string
- Added shortcut for Copy as -> Custom Encoding
Improvements
- Replaced the Windows and Linux app icon with the one from the Papyrus Icon Project!
- The DMG on macOS now looks a lot nicer than before
- Revamped the frame rate limiting system to make ImHex feel much less laggy by default and make it use less CPU resources
- ImHex now uses Jetbrains Mono as its default font instead of the ImGui default font
- The settings window can now be resized
- The ImHex window is now hidden on macOS when close button is pressed
- Allowed all highlights to overlap each other
- Allowed the favorite column in the pattern data view to be hidden
- Allowed command palette to be closed by clicking on the menu bar
- All installed content store items are now force updated after an ImHex update
Bug Fixes
- Fixed various issues with the auto updater
- RGBA8 data processor node not working correctly
- Very slow processing of large pattern console outputs
- Windows forwarder application not working when piping output
- Writing not working correctly through a provider view
- Crash on Linux if XDG_SESSION_TYPE is not set
- Crash when closing ImHex with one or more view providers open
- Uninitialized buffers in resize operation
- Exception being thrown while loading projects
- Crash when certain pattern language exceptions were thrown
- Pattern Editor shortcuts not working correctly on different languages (#2085)
- Pattern Editor Find and Replace history (#2064)
- Crash in 3D Visualizer, improved error messages (#2062)
- Disable bogus Keypad to function key conversions on macOS
- Empty regions in Intel Hex and Motorola SREC files not being displayed correctly
- Make sure provider switch buttons and close button don't overlap
- Hang when filtering for a large number of items in the pattern data view
- Off-by-one when calculating hashes of selected regions
- ImHex freezing on AMD GPUs when resizing
- Rendering issues with text editor in bookmark view
- Ctrl sometimes getting stuck when pressing ALT GR and other keys at the same time
- Missing endian setting in ARM64 disassembler
- Clicking past end of line in text editor putting cursor before last character
Pattern Language
- The evaluator now tries to keep as many patterns as it possibly can when an error occurs
- Added cursor positions to the error stack traces
- Exported global variables are now displayed in the output
- Added support for rvalue assignments inside of structs
- Fixed various issues when importing patterns as types
- Make decompress functions return number of read bytes
- Allow #pragma magic to index from the end of the data with negative addresses
- Fixed error spam when encountering an error in the Lexer
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Bug fixes for Massive UX improvements, Custom Disassemblers, MSVC support Latest
Bug Fixes
- The
imhexCLI no longer hangs for up to a second before returning output - Improve frame limit handling so it doesn't wake up a thread many times a second anymore for no reason
- The Windows Title Bar Icon is now always drawn at the correct size
- Potentially fixed a core dump when talking to dbus on Linux
- Fixed an occasional crash when switching between fonts
- Fixed a startup crash on Windows 7
- Fixed broken Plugin API link on welcome page
- Fixed a crash when closing a provider that has been opened in the diff view
- Fixed a crash when switching between disassembler architectures while disassembling
Previous Version
Features
- ImHex now properly supports HiDPI scaling on Windows, macOS and Linux!
- ImHex now uses the native menu bar on macOS
- You can now set separate fonts for the main UI, the Hex Editor and the Pattern Editor
- Added a new ARM64 AppImage release as well as a WebAssembly release to self-host ImHexWeb
- ImHex can now be fully compiled using MSVC and ClangCL on Windows! Huge thanks to @mrexodia
- The main releases are still built with MinGW but this should hopefully make it easier to contribute to ImHex!
- We now provide build attestation for each build generated through our CI so you can verify exactly from which run an artifact has been built
- Added initial support for custom disassemblers
- This lets you define disassemblers for custom instruction sets using a simple JSON format
- Added messaging support for macOS and Linux
- This allows you to use ImHex as a command line tool on macOS and Linux to control the currently open ImHex instance
- For example
imhex --open "SomeFile.bin" --select 0x100 0x200will open the SomeFile.bin file in the current instance and then select addresses 0x100 to 0x200
- Added Russian translation! Huge thanks to @Lemon4ksan
- Added a title bar backdrop color gradients and accent colors
- Added utf16 and utf32 string and char types
- Added option to randomize window title
- In case some stupid anti-cheat is trying to detect ImHex in the future :)
- Added new --select, --pattern and --debug-mode subcommands
- Added support for OpenGL post processing shaders
- This lets you load custom shaders now by placing a
shader.vertandshader.fragfile in one of the ImHex resource folders. - These shaders can apply any post processing to the rendered image
- This lets you load custom shaders now by placing a
- Added New File option to the GNOME launcher and a --new cli option
- Added support for scanning binaries for UTF-8 strings
- Added visibility toggle to hide bookmark highlighting
- Added option to fit hex columns to screen width
- Added setting to disable hex editor highlights entirely
- Added a preview to the Edit -> Copy as options
- Added "Jump to address" option to data inspector row context menu
- Added option to change radix of numbers in hex editor view
- Added context menu and next/previous buttons to the data inspector
- Added option to move selection back to hex editor footer
- Added option to copy data as escaped string
- Added shortcut for Copy as -> Custom Encoding
Improvements
- Replaced the Windows and Linux app icon with the one from the Papyrus Icon Project!
- The DMG on macOS now looks a lot nicer than before
- Revamped the frame rate limiting system to make ImHex feel much less laggy by default and make it use less CPU resources
- ImHex now uses Jetbrains Mono as its default font instead of the ImGui default font
- The settings window can now be resized
- The ImHex window is now hidden on macOS when close button is pressed
- Allowed all highlights to overlap each other
- Allowed the favorite column in the pattern data view to be hidden
- Allowed command palette to be closed by clicking on the menu bar
- All installed content store items are now force updated after an ImHex update
Bug Fixes
- Fixed various issues with the auto updater
- RGBA8 data processor node not working correctly
- Very slow processing of large pattern console outputs
- Windows forwarder application not working when piping output
- Writing not working correctly through a provider view
- Crash on Linux if XDG_SESSION_TYPE is not set
- Crash when closing ImHex with one or more view providers open
- Uninitialized buffers in resize operation
- Exception being thrown while loading projects
- Crash when certain pattern language exceptions were thrown
- Pattern Editor shortcuts not working correctly on different languages (#2085)
- Pattern Editor Find and Replace history (#2064)
- Crash in 3D Visualizer, improved error messages (#2062)
- Disable bogus Keypad to function key conversions on macOS
- Empty regions in Intel Hex and Motorola SREC files not being displayed correctly
- Make sure provider switch buttons and close button don't overlap
- Hang when filtering for a large number of items in the pattern data view
- Off-by-one when calculating hashes of selected regions
- ImHex freezing on AMD GPUs when resizing
- Rendering issues with text editor in bookmark view
- Ctrl sometimes getting stuck when pressing ALT GR and other keys at the same time
- Missing endian setting in ARM64 disassembler
- Clicking past end of line in text editor putting cursor before last character
Pattern Language
- The evaluator now tries to keep as many patterns as it possibly can when an error occurs
- Added cursor positions to the error stack traces
- Exported global variables are now displayed in the output
- Added support for rvalue assignments inside of structs
- Fixed various issues when importing patterns as types
- Make decompress functions return number of read bytes
- Allow #pragma magic to index from the end of the data with negative addresses
- Fixed error spam when encountering an error in the Lexer
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Bug fixes for Massive UX improvements, Custom Disassemblers, MSVC support
Bug Fixes
- Fixed large memory allocations when printing error messages in some cases
- Fixed an issue that caused the pattern editor to shift to the left when clicking evaluate
- Fixed a crash when a custom disassembler returned no bytes
- Fixed incorrect native scaling value when using fractional scaling on Wayland
- Moving the ImHex window between two screens with different DPI on Windows works better now
- Fixed a crash when loading a project with a saved process memory provider
- Fixed closing one Selection View causing all other Selection Views to become unusable
- Fixed a crash when selecting an invalid font
- Fixed the pattern editor losing focus when auto evaluate is on
Previous Version
Features
- ImHex now properly supports HiDPI scaling on Windows, macOS and Linux!
- ImHex now uses the native menu bar on macOS
- You can now set separate fonts for the main UI, the Hex Editor and the Pattern Editor
- Added a new ARM64 AppImage release as well as a WebAssembly release to self-host ImHexWeb
- ImHex can now be fully compiled using MSVC and ClangCL on Windows! Huge thanks to @mrexodia
- The main releases are still built with MinGW but this should hopefully make it easier to contribute to ImHex!
- We now provide build attestation for each build generated through our CI so you can verify exactly from which run an artifact has been built
- Added initial support for custom disassemblers
- This lets you define disassemblers for custom instruction sets using a simple JSON format
- Added messaging support for macOS and Linux
- This allows you to use ImHex as a command line tool on macOS and Linux to control the currently open ImHex instance
- For example
imhex --open "SomeFile.bin" --select 0x100 0x200will open the SomeFile.bin file in the current instance and then select addresses 0x100 to 0x200
- Added Russian translation! Huge thanks to @Lemon4ksan
- Added a title bar backdrop color gradients and accent colors
- Added utf16 and utf32 string and char types
- Added option to randomize window title
- In case some stupid anti-cheat is trying to detect ImHex in the future :)
- Added new --select, --pattern and --debug-mode subcommands
- Added support for OpenGL post processing shaders
- This lets you load custom shaders now by placing a
shader.vertandshader.fragfile in one of the ImHex resource folders. - These shaders can apply any post processing to the rendered image
- This lets you load custom shaders now by placing a
- Added New File option to the GNOME launcher and a --new cli option
- Added support for scanning binaries for UTF-8 strings
- Added visibility toggle to hide bookmark highlighting
- Added option to fit hex columns to screen width
- Added setting to disable hex editor highlights entirely
- Added a preview to the Edit -> Copy as options
- Added "Jump to address" option to data inspector row context menu
- Added option to change radix of numbers in hex editor view
- Added context menu and next/previous buttons to the data inspector
- Added option to move selection back to hex editor footer
- Added option to copy data as escaped string
- Added shortcut for Copy as -> Custom Encoding
Improvements
- Replaced the Windows and Linux app icon with the one from the Papyrus Icon Project!
- The DMG on macOS now looks a lot nicer than before
- Revamped the frame rate limiting system to make ImHex feel much less laggy by default and make it use less CPU resources
- ImHex now uses Jetbrains Mono as its default font instead of the ImGui default font
- The settings window can now be resized
- The ImHex window is now hidden on macOS when close button is pressed
- Allowed all highlights to overlap each other
- Allowed the favorite column in the pattern data view to be hidden
- Allowed command palette to be closed by clicking on the menu bar
- All installed content store items are now force updated after an ImHex update
Bug Fixes
- Fixed various issues with the auto updater
- RGBA8 data processor node not working correctly
- Very slow processing of large pattern console outputs
- Windows forwarder application not working when piping output
- Writing not working correctly through a provider view
- Crash on Linux if XDG_SESSION_TYPE is not set
- Crash when closing ImHex with one or more view providers open
- Uninitialized buffers in resize operation
- Exception being thrown while loading projects
- Crash when certain pattern language exceptions were thrown
- Pattern Editor shortcuts not working correctly on different languages (#2085)
- Pattern Editor Find and Replace history (#2064)
- Crash in 3D Visualizer, improved error messages (#2062)
- Disable bogus Keypad to function key conversions on macOS
- Empty regions in Intel Hex and Motorola SREC files not being displayed correctly
- Make sure provider switch buttons and close button don't overlap
- Hang when filtering for a large number of items in the pattern data view
- Off-by-one when calculating hashes of selected regions
- ImHex freezing on AMD GPUs when resizing
- Rendering issues with text editor in bookmark view
- Ctrl sometimes getting stuck when pressing ALT GR and other keys at the same time
- Missing endian setting in ARM64 disassembler
- Clicking past end of line in text editor putting cursor before last character
Pattern Language
- The evaluator now tries to keep as many patterns as it possibly can when an error occurs
- Added cursor positions to the error stack traces
- Exported global variables are now displayed in the output
- Added support for rvalue assignments inside of structs
- Fixed various issues when importing patterns as types
- Make decompress functions return number of read bytes
- Allow #pragma magic to index from the end of the data with negative addresses
- Fixed error spam when encountering an error in the Lexer
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Massive UX improvements, Custom Disassemblers, MSVC support
Features
- ImHex now properly supports HiDPI scaling on Windows, macOS and Linux!
- ImHex now uses the native menu bar on macOS
- You can now set separate fonts for the main UI, the Hex Editor and the Pattern Editor
- Added a new ARM64 AppImage release as well as a WebAssembly release to self-host ImHexWeb
- ImHex can now be fully compiled using MSVC and ClangCL on Windows! Huge thanks to @mrexodia
- The main releases are still built with MinGW but this should hopefully make it easier to contribute to ImHex!
- We now provide build attestation for each build generated through our CI so you can verify exactly from which run an artifact has been built
- Added initial support for custom disassemblers
- This lets you define disassemblers for custom instruction sets using a simple JSON format
- Added messaging support for macOS and Linux
- This allows you to use ImHex as a command line tool on macOS and Linux to control the currently open ImHex instance
- For example
imhex --open "SomeFile.bin" --select 0x100 0x200will open the SomeFile.bin file in the current instance and then select addresses 0x100 to 0x200
- Added Russian translation! Huge thanks to @Lemon4ksan
- Added a title bar backdrop color gradients and accent colors
- Added utf16 and utf32 string and char types
- Added option to randomize window title
- In case some stupid anti-cheat is trying to detect ImHex in the future :)
- Added new --select, --pattern and --debug-mode subcommands
- Added support for OpenGL post processing shaders
- This lets you load custom shaders now by placing a
shader.vertandshader.fragfile in one of the ImHex resource folders. - These shaders can apply any post processing to the rendered image
- This lets you load custom shaders now by placing a
- Added New File option to the GNOME launcher and a --new cli option
- Added support for scanning binaries for UTF-8 strings
- Added visibility toggle to hide bookmark highlighting
- Added option to fit hex columns to screen width
- Added setting to disable hex editor highlights entirely
- Added a preview to the Edit -> Copy as options
- Added "Jump to address" option to data inspector row context menu
- Added option to change radix of numbers in hex editor view
- Added context menu and next/previous buttons to the data inspector
- Added option to move selection back to hex editor footer
- Added option to copy data as escaped string
- Added shortcut for Copy as -> Custom Encoding
Improvements
- Replaced the Windows and Linux app icon with the one from the Papyrus Icon Project!
- The DMG on macOS now looks a lot nicer than before
- Revamped the frame rate limiting system to make ImHex feel much less laggy by default and make it use less CPU resources
- ImHex now uses Jetbrains Mono as its default font instead of the ImGui default font
- The settings window can now be resized
- The ImHex window is now hidden on macOS when close button is pressed
- Allowed all highlights to overlap each other
- Allowed the favorite column in the pattern data view to be hidden
- Allowed command palette to be closed by clicking on the menu bar
- All installed content store items are now force updated after an ImHex update
Bug Fixes
- Fixed various issues with the auto updater
- RGBA8 data processor node not working correctly
- Very slow processing of large pattern console outputs
- Windows forwarder application not working when piping output
- Writing not working correctly through a provider view
- Crash on Linux if XDG_SESSION_TYPE is not set
- Crash when closing ImHex with one or more view providers open
- Uninitialized buffers in resize operation
- Exception being thrown while loading projects
- Crash when certain pattern language exceptions were thrown
- Pattern Editor shortcuts not working correctly on different languages (#2085)
- Pattern Editor Find and Replace history (#2064)
- Crash in 3D Visualizer, improved error messages (#2062)
- Disable bogus Keypad to function key conversions on macOS
- Empty regions in Intel Hex and Motorola SREC files not being displayed correctly
- Make sure provider switch buttons and close button don't overlap
- Hang when filtering for a large number of items in the pattern data view
- Off-by-one when calculating hashes of selected regions
- ImHex freezing on AMD GPUs when resizing
- Rendering issues with text editor in bookmark view
- Ctrl sometimes getting stuck when pressing ALT GR and other keys at the same time
- Missing endian setting in ARM64 disassembler
- Clicking past end of line in text editor putting cursor before last character
Pattern Language
- The evaluator now tries to keep as many patterns as it possibly can when an error occurs
- Added cursor positions to the error stack traces
- Exported global variables are now displayed in the output
- Added support for rvalue assignments inside of structs
- Fixed various issues when importing patterns as types
- Make decompress functions return number of read bytes
- Allow #pragma magic to index from the end of the data with negative addresses
- Fixed error spam when encountering an error in the Lexer
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
Startup fix
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::Jsonfor decoding json strings orhex::type::Instructionfor disassembling bytes.
- Types such as
- Added option to import existing patterns into other patterns.
- You can for example use
import * from elf as ELF;and then place theELFtype anywhere you want to decode ELF data there.
- You can for example use
- 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
patternsas aOtherTypetype
- If both sides have the same size, this will interpret the bits of
- 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_literalor"Test"_literal(1, 2, 3) - Added a
IMPORTEDmacro 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!
Shortcut fixes
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::Jsonfor decoding json strings orhex::type::Instructionfor disassembling bytes.
- Types such as
- Added option to import existing patterns into other patterns.
- You can for example use
import * from elf as ELF;and then place theELFtype anywhere you want to decode ELF data there.
- You can for example use
- 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
patternsas aOtherTypetype
- If both sides have the same size, this will interpret the bits of
- 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_literalor"Test"_literal(1, 2, 3) - Added a
IMPORTEDmacro 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!