Skip to content

v0.3.0 - 2024-10-16

Latest
Compare
Choose a tag to compare
@crumblingstatue crumblingstatue released this 16 Oct 15:35
· 21 commits to main since this release

Showcase

Syntax highlighting and API help for Lua scripting:

image

Using StringDiff search option to find the string MARIO in a non-ascii character set

image

Video of using the new plugin system to decode strings in Paper Mario:
https://www.youtube.com/watch?v=cE9PKO8Gvo0

Changelog

UI changes

Hex Editor:

  • Del key zeroes out the byte at cursor

Bookmarks window:

  • Jump-to button in detail view
  • Value edit input in detail view
  • Context menu option to copy a bookmark's offset
  • Add right click menu option to reoffset all bookmarks based on a known offset (read help label)

File diff window:

  • Now takes the value types of bookmarks into account, showing the whole values of
    bookmarks instead of just raw bytes.
  • Add "Highlight all" button to highlight all differences
  • Add "Open this" and "Diff with..." buttons to speed up diffing
    subsequent versions of a file

Find dialog:

  • Add help hover popups for the find type dropdown
  • Add "string diff" and "pattern equivalence" find types. See the help popups ;)
  • Add basic replace functionality to Ascii find

X86 assembly dialog:

  • Add ability to jump to offset of decoded instructions

Root context menu:

  • Add "copy selection as utf-8 text"
  • Add "zero fill" (Shortcut: Del)

External command window:

  • Now openable with Ctrl+E
  • Allow closing with Esc key
  • Add "selection only" toggle to only pass selection to external command

Open process window:

  • Add UI to launch a child process in order to view its memory (hexerator doesn't have to be root)
  • The virtual memory map window now makes it more clear that you're no longer
    looking at the list of processes, but the maps for a process.

Jump dialog:

  • Replace (broken) "relative" option with "absolute"

Preferences window:

  • Make the ui tabbed
  • Small ui improvements

Lua scripting

  • Replaced LuaJIT with Lua 5.4, because LuaJIT is incompatible with panic=abort.
  • Add Lua syntax highlighting in most places
  • Add Lua API help window (Scripting - Lua help)
  • Add a bunch more API items (see Scripting -> Lua help)
  • Allow saving named scripts, and add script manager window to overview them
  • Add Lua console window for quick evaluation and "watching" expressions
  • Scripts can now take arguments (args table, e.g. args.foo)

Plugins

New feature. Allow loading dylib plugins. Documentation to be added.
For now, see the hexerator_plugin_api crate inside the repo.

Command line

  • Add --version flag
  • Add --debug flag to start with debug logging enabled and debug window open
  • Add --spawn-command <command>... flag to spawn a child process and open it in process list (hexerator doesn't have to be root)
  • Add --autosave and --autoreload [<interval>] to enable autosave/autoreaload through CLI
  • Add --layout <name> to switch to a layout at startup
  • Add --new <length> option to create a new (zero-filled) buffer

Fixes

  • Loading process memory on windows now correctly sets relative offset
  • When failing to load a file via command line arg, error reason is now properly displayed

Other

  • Analysis -> Zero partition for "zero-partitioning" files that contain large zeroed out sections (like process memory).
  • Add feature to autoreload only visible part (as opposed to whole file)
  • Replace blocking file dialog with nonblocking egui file dialog
  • Update egui to 0.29
  • Experimental support for custom color themes (See Preferences -> Style)
  • Make monochrome and "grayscale" hex text colors customizable
  • No more dynamic dependency on SFML. It's statically linked now.
  • Various bug fixes and minor improvements, too many to list individually