Skip to content

Process memory provider, native theming, better information view

Compare
Choose a tag to compare
@WerWolv WerWolv released this 04 Jan 15:36
· 2394 commits to master since this release

Additions

  • Added a "Save Project" menu entry to quickly save the current project without specifying a path
  • Added byte Type distribution, digram and layered distribution plots to information view
  • Added support for pasting byte strings with 0x prefixes or commas inbetween in the hex editor view. Thanks to @Diadlo for their initial implementation of this
  • Added native theming support
    • New themes can now simply be placed in the %IMHEX%/themes folder for them to be loaded
  • Added a Process Memory Provider on Windows
    • This provider can attach to any process and read its entire address space
    • It can also list all available sections and modules, and inject new DLLs

Improvements

  • ImHex now automatically disables unicode support if the used GPU doesn't have enough VRAM to load all glyphs
  • Debug builds now completely ignore plugins that are not in the plugins folder next to the executable
    • This is useful for debugging issues especially on Linux systems where ImHex has been installed using a package manager
  • The localization system has been completely revamped and now uses simple json files
    • If you plan on adding support for a new language, there's a simple tool to help you with that now. Check out the HACKING.md file for more information
  • Improved speed of entropy graph calculation
  • Improved German translation. Thanks to @123456abcdef
  • Improved Chinese (Simplified) translation. Thanks to @xtexChooser
  • ImHex is now compiled using -Wpedantic to make sure we're using valid ISO C++

Bug Fixes

  • Fixed building with LTO enabled
  • Fixed patterns not appearing if pattern editor is not visible
  • Fixed a crash when closing a section view while bytes were selected
  • Fixed file provider adding additional zero bytes at the end of the file when saving
  • Fixed issues where the hex editor view would sometimes jump back to the start of the file after searching
  • Fixed searching for negative floating point values
  • Fixed a crash when printing NULL bytes to the pattern console
  • Fixed bookmarks displaying too many bytes in some cases
  • Fixed saving of projects to paths containing non-ASCII characters
  • Fixed various issues where iterators and containers got accessed incorrectly which could lead to issues and crashes
  • Fixed template types being placable through the hex editor right click menu

Pattern Language

  • Added the ability to modify values in the pattern data view
    • To go into editing mode, double click the value field of a pattern in the pattern data view
    • This works for all built-in types as well as enums by default
    • If you want to make your own types modifyable, use the [[format_write]] attribute
  • Arrays are now displayed without extra indentation if there's less than 512 entries in it
  • Added visualizers
    • Currently available are a basic line plot and an image visualizer
    • They can be used through the [[hex::visualizer]] attribute
  • Added support for anonymous patterns
  • Allow sections to be initialized using strings
  • Added new std::mem::find_string_in_range function
  • str variables can now be used in global scope
  • Patterns views can now be placed from functions using the placement syntax
    • This doesn't add a new pattern to the pattern list but can be used to read/write bytes
  • Added $[123] syntax to read a single byte from the main memory
  • Added support for doc comments
    • These can be parsed and turned into markdown files using the plcli tool
  • Allow attributes to directly use rvalues instead of being limited to string literals only
    • This allows you to for example have pattern names, colors and many other things depend on values in the type they are applied to
  • Fixed passing local variables to functions
  • Fixed array out of bounds checks applying to heap arrays
  • File handles are now cleaned up completely after evaluaton finishes
  • Fixed reading from bitfield fields that have been placed in a different section
  • Fixed [[sealed]] attribute not working correctly with static arrays
  • Improved pattern memory usage
  • Fixed various issues with reference parameters
  • Fixed bitfield fields not respecting endianess settings
  • The [[format]] attribute has been deprecated in favour of the new [[format_read]] and [[format_write]] attributes
  • Fixed some patterns having no name or a black color
  • Fixed broken sign extension of 64 and 128 bit signed variables
  • Fixed dynamic arrays always overriding colors
  • Fixed indexing of strings and wide strings
  • Prevented indexing of non-indexable types

If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!

GitHub donate button Patreon donate button PayPal donate button