rehex

Reverse Engineers' Hex Editor

GPL-2.0 License

Stars
2.3K
rehex - Latest Release

Published by solemnwarning 3 months ago

This release includes changes and new features to assist editing of sub-byte-width values and non-byte-aligned values in files:

  • Add bit array data type (#167).
  • Allow selecting and setting comments/highlights/types on bit-sized/aligned quantities, not just byte-aligned (#155).
  • Allow defining arbitrary integer types, up to 64 bits wide (#215).
  • Allow navigating hex data by nibbles rather than bytes (#58).

There are also improvements to the highlighting feature, and general usability improvements:

  • Allow colouring data by byte value (#223).
  • Allow changing/defining custom highlight colours and assigning labels to them (#227).
  • Use dimmer highlight colours for dark colour schemes (#227).
  • Save highlight colours/labels per-file (#60).
  • Allow changing keyboard shortcuts (#226).
  • Add Shift+Enter shortcut for "OK" in the comment dialog (#226).
  • Display offset in both decimal and hexadecimal in status bar (#228).
  • Fix handling of relative paths specified on the command line when opening in an existing instance (#237).

On the build/pipeline side, I've switched the toolchain used for the 32-bit Windows version (rehex-0.62.0-win-x86.zip) to one that can run on earlier versions of Windows (XP and above).

rehex - 0.61.1

Published by solemnwarning 7 months ago

This release fixes data being displayed from the wrong point in the file when "Collapse matches" is enabled in the file comparison window.

rehex - 0.61.0

Published by solemnwarning 8 months ago

Changes since 0.60.1:

  • Permit trailing commas in template enum definitions (#216).
  • Add overwrite/insert toggle to "Fill range" dialog (#213).
  • Add copy/export context menu commands to strings tool (#210).
  • Fix temporary hang in strings tool when processing large files (#217).
  • Fix settings not being saved during application exit.
  • Batch comments panel updates to improve responsiveness (#205).
  • Add search field to comments panel (#204).
  • Add bit editor tool.
  • Add checksum tool (#219).
  • Add options to search for floating point values.
  • Don't reload files modified externally when requested not to.
  • Start search when Enter is pressed in search dialog input field, or search backwards when Shift+Enter is pressed.
  • Add "Reload automatically" toggle to "File" menu to automatically reload the file when modified externally (and not in the editor) (#222).
  • Preserve scroll position when reloading file.
rehex - 0.60.1

Published by solemnwarning about 1 year ago

Its been a long time since the last release, but hopefully worth the wait!

I've grouped the changes since 0.5.4 into categories below:

New features

  • Add data histogram tool (#140).
  • Monitor for open files being externally modified and allow reloading (#124).
  • Add "Delete comment and children" context menu command to delete a comment and any comments encapsulated by it (#198).
  • Allow dragging tabs between windows or out to new ones.

Quality of life improvements

  • Use virtual offsets in "Select range" dialog.
  • Don't re-open files to save when there are no changes (#193).
  • Improve performance when large numbers of comments are defined.
  • Open original file when passed a rehex-meta file on the command line (#207).

Character set handling

  • Add <charset = "XXX"> syntax to templates (#184).
  • Add character set option to text search (#182, #200).
  • Add IBM codepage 866 and Windows-1251 (#208).

Binary templates

  • Expose current array index as ArrayIndex when expanding arrays of structs in templates (#191).
  • Fix true/false not being usable inside template functions/structs (#197).
  • Add new ReadString(), SPrintf(), SetComment(), StringLengthBytes(), ArrayPush(), ArrayPop() and OffsetOf() template function.
  • Fix repeated execution of the same switch() block in a template (#202).
  • Add 'private' variables to template language.
  • Fix template format strings that expand to further format tokens.
  • Fix template error when converting a float to an int.
  • Remember recently selected templates (#183).
  • Implement lexical variable scoping in templates and allow functions to access global variables defined above them (#190).
  • Add "Apply template from cursor" option to binary template tool.

Bug fixes

  • Fix crash when running rehex for the first time on some systems (#194).
  • Correctly draw insert cursor over highlighted data and at the end of the file (#196).
  • Fix cases where the strings tool would appear to run forever with an empty file.
  • Remove strings from the strings panel when they are deleted from the file.
  • Fix crash when attempting to open a directory/bundle on macOS.
rehex - 0.5.4

Published by solemnwarning almost 2 years ago

Mainly binary template improvements in this release, but also adds a pcap analyser plugin courtesy of @RegularITCat!

  • Allow passing arguments to structs created via ArrayResize() and ArrayExtend() template functions.
  • Fix parsing of whitespace in template array dereference (#175).
  • Display offsets in comments panel (#165).
  • Don't show expand arrows next to comments without children in comments panel on Windows/macOS.
  • Improve performance of templates that declare many (thousands+) of variables in the file.
  • Add Error() function for templates (#186).
  • Fix crash when attempting to use string as a file variable in templates (#185).
  • [Pavel Martens] Add plugin for annotating pcap files.
rehex - 0.5.3

Published by solemnwarning over 2 years ago

This release is mostly bugfixes and improvements for handling CJK encodings/characters.

Full changes below:

  • Correctly nest comments when updating comments panel (#169).

  • Update text in comments panel when a comment is modified.

  • Fix display of >4GiB virtual offsets in files that are <=4GiB (#170).

  • Add support for code page 437 (IBM) and 932/936/949/950 (Microsoft).

  • Fix handling of multibyte character boundaries in document view.

  • Draw wide characters in document view (#173).

  • Move forwards/backwards and select whole instructions from disassembly in document view.

  • Don't capture tab key press in text area of document view.

  • Add missing error checks.

  • Add number base option to "Jump to offset" dialog.

  • Drawing optimisations (improves responsiveness), particularly on macOS.

  • Fix some undefined behaviour issues.

rehex - 0.5.1

Published by solemnwarning over 2 years ago

This release fixes the macOS builds to run on 10.13 (High Sierra) and newer.

For other platforms, just download the 0.5.0 release.

rehex - 0.5.0

Published by solemnwarning over 2 years ago

New feature release!

Among other things, adds binary templates, a manual and bitmap data visualisation.

Full changes:

  • Added "x86 disassembly syntax" to "View" menu to allow selecting between Intel or AT&T notation for x86 disassembly (#142).
  • Handle file open message used for "Open With" on macOS (#144).
  • Added --compare switch to jump straight into comparing two files (#141).
  • Fix timer leak that can cause a crash when closing the compare window or strings panel.
  • Add import and export functions for Intel Hex files (#102).
  • Add online help (#147).
  • Add Bitmap Data Visualisation tool (#29).
  • Add Binary Template support (#138).
  • [Emily Ellis] Save new files without the execute bit set (#154).
  • Include highlight colour names in context menu (#153).
  • Save write protect setting in rehex-meta.json (#143).
  • Fix several occasional crashes.

NOTE: This release accidentally broke support for versions of macOS prior to 12.0 (Monterey), version 0.5.1 fixes this and will run on 10.13 (High Sierra) or later.

rehex - 0.4.1

Published by solemnwarning almost 3 years ago

Bugfix update for 0.4.0 - this release fixes text rendering glitches that can occur when displaying control characters and some Unicode ones, depending which font is in use (worst affected is the default Windows font).

rehex - 0.4.0

Published by solemnwarning almost 3 years ago

Merry Christmas!

  • Add data types for common text encodings (Unicode, ISO-8859) - text displayed or typed into the text view on the right will be decoded or encoded appropriately (#10).

  • Treat pasted text as text rather than a string of raw bytes.

  • Add 8-bit integer data types.

  • Don't mark new files as unsaved.

  • Store cursor position history and allow jumping backwards/forwards (#81).

  • Allow jumping to previous/next difference in data compare window (#131).

  • Collapse long ranges of identical data in data compare window (#85).

  • Added "Jump to offset in main window" to data compare window context menu.

  • Added shortcuts for comparing data (#103).

  • Add support for other encodings to strings tool (#106).

  • Add write protect flag to prevent accidental changes to file data during analysis (#130).

  • Respect system cursor blink speed setting (#112).

rehex - 0.3.92

Published by solemnwarning about 3 years ago

This release is mostly bugfixes and usability improvements.

  • Reduce persistent memory usage (#52).

  • Fully undo virtual mapping changes in one step (#126).

  • Fix build dependency errors (#129).

  • Add "Find previous" button to search dialogs (#111).

  • Fix hard-to-see colours in "Decode values" panel on some systems (#127).

  • Fix build errors on FreeBSD (#133).

  • Prevent document from jumping around when the window is resized or
    disassembly is in progress (#132).

  • Fix build errors when using wxWidgets 3.1.5 and newer.

  • Refactor selection handling to make sense in virtual section view (#125).

  • Add font face setting to "View" menu (#128).

  • Correctly track whether files have been modified since saving (#122).

rehex - 0.3.91

Published by solemnwarning over 3 years ago

I've not been able to put much time into rehex in recent months, so some of the features in this release aren't quite as polished as I'd like, but I wanted to put something out since its been almost 6 months.

I hope both old and new users will like the features in this release:

  • Show disassembly of machine code in the main document view (#94).
  • Add float/double types to "Set data type" menu (#104).
  • Initial support for Lua plugins.
  • Process sections from PE EXE/DLL headers (#86).
  • Virtual segment mapping and display (#7).

For a full list of changes including bugfixes, see CHANGES.txt

Enjoy!

rehex - 0.3.1

Published by solemnwarning almost 4 years ago

  • Correctly display signed 16-bit values in "Decode values" panel.

  • Fix status bar offset going out of sync.

  • Move cursor when a row in the "Comments" panel is double clicked.

  • Focus document after updating position/selection via "Comments" panel.

rehex - 0.3.0

Published by solemnwarning almost 4 years ago

  • [Mark Jansen] Use byte grouping setting from main window in diff window.

  • [Mark Jansen] Use Capstone disassembler rather than LLVM.

  • [Mark Jansen] Support disassembling 16-bit x86 machine code.

  • [Mark Jansen] Don't update tools which aren't visible.

  • [Vincent Bermel] Unhardcode linux launcher icon file type.

  • Fix an uncommon use-after-free crash when closing tabs in diff window.

  • Support for disassembling 6800/68000 and MOS6502 instruction sets (requires recent Capstone version).

  • [Mark Jansen] Close document when tab is clicked with middle mouse button.

  • [Mark Jansen] Don't create .rehex-meta files when there is nothing to save.

  • Implement Strings tool to find and list ASCII strings in the file.

  • Add option to calculate automatic bytes per line in whole byte groups.

  • Add "Fill range" tool for overwriting ranges of bytes with a pattern.

  • Preserve column alignment after comments.

  • [Mark Jansen] Mark a document dirty if highlighting is changed.

  • Add data type annotations.

  • Show ranges marked as integers in their decoded form in the hex view.

  • Performance improvements for documents with large numbers of comments.

rehex -

Published by solemnwarning over 4 years ago

  • Allow copying comments from a document and pasting them elsewhere in the
    same document or into another one.

  • Fixed bounds check when clicking on nested comments in a document.

  • Added context menu when right clicking on a comment in a document.

  • Optionally highlight byte sequences which match the current selection.
    ("Highlight data matching selection" or "PatternMatchHighlight").

  • Allow copying cursor offset from document context menu.

  • Correctly display offsets over 4GiB in the status bar.

  • Display offsets as XXXX:XXXX rather than XXXXXXXX:XXXXXXXX when the file
    size is under 4GiB.

  • Add per-document option for dec/hex offset display.

  • When first byte after a comment is deleted, show that the comment was
    deleted rather than leaving phantom comment on screen until regions are
    repopulated.

  • Add side-by-side comparison of chunks of data from files. Select data and
    choose "Compare..." from context menu to open diff window.

  • Clean up search threads when a tab is closed while a search is running.

  • Display bytes which have been modified since the file was saved in red.

rehex -

Published by solemnwarning over 4 years ago