Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/evanmiller/hecate

🔥 The Hex Editor From Hell! 🔥
https://github.com/evanmiller/hecate

hex-editor

Last synced: 20 days ago
JSON representation

🔥 The Hex Editor From Hell! 🔥

Awesome Lists containing this project

README

        

# 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](https://github.com/evanmiller/hecate/releases)**

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](http://www.evanmiller.org/images/hecate/screenshot2.png)

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](https://en.wikipedia.org/wiki/Hecate)
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](https://github.com/evanmiller/hecate/releases)**