Skip to content

Releases: WerWolv/ImHex

Huge file loading, disassembler and pattern language additions

22 Nov 22:36
Compare
Choose a tag to compare

Changelog

Additions

  • Allow loading of huge files efficiently
  • Added a capstone based disassembler window for ARM32, ARM64, x86, PowerPC, MIPS, Sparc, SystemZ, XCore, 68K, TMS320C64x, 680X and Ethereum. All modes are supported.
  • Added pragmas to pattern language
    • #pragma MIME for specifying type of file this pattern is useful for
    • #pragma endian for setting the data endianess globally for this pattern file
  • Added automatic loading of pattern files based on the loaded file's MIME type
  • Added array sizes based on other variables in the same struct to pattern language
  • Added pointers to pattern language
  • Added big/little endian toggle to data inspector

Bug fixes

  • Fixed enums always failing to validate
  • Fixed data inspector showing unsigned values instead of signed values
  • Fixed table colors looking weird sometimes

More language and UI additions

20 Nov 23:36
Compare
Choose a tag to compare

Changelog

Additions

  • Added bitfields to pattern language
  • Added unions to pattern language
  • Added padding data type to pattern language
  • Added data inspector view
  • Added loading of file when dropping it onto ImHex
  • Better file picker by gallickgunner (with some improvments)
  • Completely rewrote highlighting and pattern evaluator
    • Made structs and arrays collapsible
  • Added highlighting of byte regions with the cursor
  • Added more Goto modes
    • Offset from start of the data
    • Offset from the current cursor position
    • Offset from the end of the data
  • Added more "Copy as..." functions
    • Copy as programming language array
      • C
      • C++
      • C#
      • Rust
      • Java
      • JavaScript
      • Python
    • Copy as text
      • ASCII formatted hex view
      • HTML formatted hex view (in a self contained <div>)
  • Added a offset header row in hex editor
  • Replaced pattern editor with properly syntax highlighted version by BalazsJako

Bug fixes

  • Fixed about and cheat sheet window not opening
  • Fixed crash when loading huge files. Hex editor doesn't support them yet though because of an ImGui limitation
  • Fixed syntax errors at the end of the file to not be caught
  • Fixed ImHex icon to not show in window

Huge feature update

17 Nov 02:28
Compare
Choose a tag to compare

Changelog

Additions

  • Added enums
  • Added // and /* */ style comments
  • Added language verifier to catch many logic errors
  • Added libmagic database for Nintendo Switch files
  • Added full variable name displaying in pattern data view
  • Added a about and a pattern language cheat sheet window
  • Massively improved the pattern data view with ImGui's new Tables API
    • Added sorting
    • Added color coding
    • Added per-type value displaying
  • Added tools window featuring
    • Itanium demangler
    • ASCII table
    • Regex replacer
    • Color picker
  • Added strings finder
  • Added hexadecimal search in hex editor
  • Added multi-byte selection with byte and string copying
  • Added many key shortcuts for commonly used functions
  • Improved byte highlight palette
  • Improved entropy chart by always calculating the entropy using 2048 blocks per file
  • Added more information to data information window

Bug fixes

  • Fixed color flickering after loading pattern file
  • Disabled pattern editor when no file is loaded

Initial Release

12 Nov 23:12
Compare
Choose a tag to compare

Changelog

This is the initial release. Currently supported features:

  • Hex view
    • Data preview feature
    • File modifying
  • File information display
    • Byte distribution graph
    • Entropy graph
    • Total entropy
    • Highest entropy block
    • libmagic description and MIME type display
      • Bundling default and a custom ImHex database
  • Data hashing feature
    • Region setting
    • CRC16 and CRC32
      • Custom initials and polynoms
    • MD4 and MD5
    • SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512
  • Pattern highlighting and displaying using a custom, C-like, scripting language
    • C structs
    • C++ using declarations
    • Built-in types: u8, s8, u16, s16, u32, s32, u64, s64, u128, s128, float, doubles
    • Arrays
    • Custom @ syntax to place structs at a specific address
      • Example: Data data @ 0x1000;

Screenshots