The Hex Editor From Hell!
Go Yacc
Latest commit f96c2ed Sep 28, 2016 @evanmiller committed on GitHub Merge pull request #12 from tSU-RooT/fix-width01
Use RuneWidth instead of increment
Permalink
Failed to load latest commit information.
.gitignore Link to releases May 20, 2016
.goxc.json Link to releases May 20, 2016
LICENSE Initial commit Apr 17, 2015
README.md Update README.md Sep 5, 2016
cursor.go Do not process field value on escape. Aug 11, 2016
expr.y Fix expression parser for hex numbers May 31, 2015
field_editor.go Do not process field value on escape. Aug 11, 2016
hecate.go Do not process field value on escape. Aug 11, 2016
layout.go New date decoding features (press D to view) May 30, 2015
platform_linux.go more edit fixes. drop space when editing two bytes in hex mode. Feb 18, 2016
platform_others.go more edit fixes. drop space when editing two bytes in hex mode. Feb 18, 2016
platform_windows.go more edit fixes. drop space when editing two bytes in hex mode. Feb 18, 2016
point.go Support for search (activate with '/') May 20, 2015
scan.go Do not process field value on escape. Aug 11, 2016
screen.go initial edit mode lock. rewire output screen index switch to a proper… Feb 19, 2016
screen_about.go Use RuneWidth instead of increment Sep 28, 2016
screen_data.go open new tabs in read only mode. Feb 19, 2016
screen_dialog.go Do not process field value on escape. Aug 11, 2016
screen_palette.go initial edit mode lock. rewire output screen index switch to a proper… Feb 19, 2016
search.go Fix application quit during search Jun 1, 2015
string_util.go Use RuneWidth instead of increment Sep 28, 2016
style.go Do not process field value on escape. Aug 11, 2016
tab.go Do not process field value on escape. Aug 11, 2016
widget.go Basic tabbed interface Jun 2, 2015
widget_cursor.go Use WASD for tab key bindings Jun 11, 2015
widget_nav.go Basic tabbed interface Jun 2, 2015
widget_offset.go Fix spelling of "eighths" variable Jun 5, 2015
y.go Fix expression parser for hex numbers May 31, 2015

README.md

hecate: The Hex Editor From Hell!

HECATE. O well done! I commend your pains;
And every one shall share i' the gains;
And now about the cauldron sing,
Live elves and fairies in a ring,
Enchanting all that you put in.

--Macbeth, p. 56

Download latest release: Linux, Mac OS X, and Windows

Compile from source:

go get -u github.com/evanmiller/hecate

Run:

$GOPATH/bin/hecate file1 [file2 [...]]

Hecate is a terminal hex editor unlike any you've ever seen: instead of putting the (ASCII) representation of bytes way out on the right side of the screen, it puts the interpreted values directly beneath the hex representation.

Behold: Hecate screenshot

If that weren't exciting enough, you can move the cursor around using Vim-like controls and interpret the underlying bytes as an integer, float, etc. -- perfect for your reverse-engineering needs.

But wait, there's more! Hecate (pronounced HECK-it, named after the Greek goddess of witchcraft) features tabbed browsing, in-place editing, large-file support, full-file searching, and arbitrary expressions for specifying an offset within a file. Place the cursor over some bytes and choose a mode (t for text, p for a bit pattern, i for an integer, f for a floating point) to see what those bytes represent. Toggle endianness with e and signedness with u. Press enter to edit.

Editing

Pressing enter brings up an edit field for the data under the cursor. Make changes and press enter again to write changes to disk. Pressing esc cancels any changes on the current position, otherwise exits edit mode. Navigating passed the edges of the field moves the cursor. The expected format depends on the cursor mode when entering edit mode.

Full list of commands:

hleftttext modeSshow tabs
jdownpbit pattern modeWhide tabs
kupiinteger modeAprevious tab
lrightffloat modeDnext tab
bleft 4 bytesHshrink cursorctrl-tnew tab
wright 4 bytesLgrow cursorctrl-wclose tab
^line startetoggle endiannessctrl-escroll down
$line endutoggle signednessctrl-yscroll up
gfile startadate decodingctrl-fpage down
Gfile end@set date epochctrl-bpage up
:jump to byte/search fileenteredit mode
xtoggle hexnnext match?help screen

What are you waiting for? Don't you want to edit any file on your computer? What could possibly go wrong?

Your vessels and your spells provide,
Your charms and everything beside.
I am for th' air. This night I'll spend
Unto a dismal and a fatal end.

Download latest release: Linux, Mac OS X, and Windows