🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
The documentation that has been finally written from scratch for most of the important features of ImHex and the Pattern Language. You can find it at https://imhex.werwolv.net/docs
The Pattern Language is now compatible with Emscripten so it can running in a browser! A proof of concept of this is available on https://pl.werwolv.net. It can do the same thing as the plcli
's format
option can do, it takes a pattern and a binary file and converts it to a JSON, YAML or HTML file.
Two new plugins have been developed for ImHex as well!
match
statements. Thanks a lot to @Nowilltolifestd::math::accumulate
. Thanks to @Nowilltolifestd::random
functionsstd::core::set_display_name
function. Thanks to @amaksoftAbsolute massive thanks to everybody that got involved in this Project in the past weeks. You're amazing <3
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
line_plot
, scatter_plot
, image
, bitmap
, disassembler
, 3d
, sound
const
variablesapplication/octet-stream
is no longer considered a valid MIME type as it matches any unknown formatthis
to be used in variable attributes to refer to the current variablenull
keyword#endif
directives requiring a space behind it to workformat_read_entries
, format_write_entries
and transform_entries
attributeshighlight_hidden
attribute to disable highlighting of the current patternIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
line_plot
, scatter_plot
, image
, bitmap
, disassembler
, 3d
, sound
const
variablesapplication/octet-stream
is no longer considered a valid MIME type as it matches any unknown formatthis
to be used in variable attributes to refer to the current variablenull
keyword#endif
directives requiring a space behind it to workformat_read_entries
, format_write_entries
and transform_entries
attributeshighlight_hidden
attribute to disable highlighting of the current patternIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
0x
prefixes or commas inbetween in the hex editor view. Thanks to @Diadlo for their initial implementation of this%IMHEX%/themes
folder for them to be loadedplugins
folder next to the executable
-Wpedantic
to make sure we're using valid ISO C++[[format_write]]
attribute[[hex::visualizer]]
attributestd::mem::find_string_in_range
functionstr
variables can now be used in global scope$[123]
syntax to read a single byte from the main memory[[sealed]]
attribute not working correctly with static arrays[[format]]
attribute has been deprecated in favour of the new [[format_read]]
and [[format_write]]
attributesIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
0x
prefixes or commas inbetween in the hex editor view. Thanks to @Diadlo for their initial implementation of this%IMHEX%/themes
folder for them to be loadedplugins
folder next to the executable
-Wpedantic
to make sure we're using valid ISO C++[[format_write]]
attribute[[hex::visualizer]]
attributestd::mem::find_string_in_range
functionstr
variables can now be used in global scope$[123]
syntax to read a single byte from the main memory[[sealed]]
attribute not working correctly with static arrays[[format]]
attribute has been deprecated in favour of the new [[format_read]]
and [[format_write]]
attributesIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
0x
prefixes or commas inbetween in the hex editor view. Thanks to @Diadlo for their initial implementation of this%IMHEX%/themes
folder for them to be loadedplugins
folder next to the executable
-Wpedantic
to make sure we're using valid ISO C++[[format_write]]
attribute[[hex::visualizer]]
attributestd::mem::find_string_in_range
functionstr
variables can now be used in global scope$[123]
syntax to read a single byte from the main memory[[sealed]]
attribute not working correctly with static arrays[[format]]
attribute has been deprecated in favour of the new [[format_read]]
and [[format_write]]
attributesIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
uninstall
target to the build script. Thanks to @iTroozCTRL + SHIFT + Z
as a Undo shortcut. Thanks to @iTroozPaste all
option to paste all bytes and resize the provider accordingly if it's too smalli128
internally instead of a i64
and floats use a long double
instead of a float
u32("ABCD")
turns into 0x44434241
[[hidden]]
attributes not applying to top level patternssizeof(this)
yielding incorrect resultsstd::hash::crc32
std::core::is_valid_enum
function to check if a enum has a valid representationIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
%IMHEX_PATH%/scripts/inspectors
folder with the .pat
extension and enter you pattern code there@
operator will be added to the list$
operatorJump to
option to the Edit
menu that allows scrolling directly to the currently selected regionhex.builtin.setting.interface.multi_windows
setting in the config file to 0
sizeof
operators
break
in an unsized arraystd::mem::read_signed
yielding invalid valuesstd::time
libraryIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
addressof
and sizeof
operators%IMHEX_PATH%/scripts/inspectors
folder with the .pat
extension and enter you pattern code there@
operator will be added to the list$
operatorJump to
option to the Edit
menu that allows scrolling directly to the currently selected regionhex.builtin.setting.interface.multi_windows
setting in the config file to 0
sizeof
operators
break
in an unsized arraystd::mem::read_signed
yielding invalid valuesstd::time
libraryIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!
sizeof
operators
%IMHEX_PATH%/scripts/inspectors
folder with the .pat
extension and enter you pattern code there@
operator will be added to the list$
operatorJump to
option to the Edit
menu that allows scrolling directly to the currently selected regionhex.builtin.setting.interface.multi_windows
setting in the config file to 0
break
in an unsized arraystd::mem::read_signed
yielding invalid valuesstd::time
libraryIf you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!