What Hexanaunt Actually Does

Hexanaunt is a hexadecimal analysis and editing utility designed for people who need to inspect binary data without the bloat of a full IDE. It parses raw files, displays them in aligned rows, and lets you modify bytes in place. The interface is terminal-driven by default, with an optional GUI layer you can toggle on if you prefer clickable controls. I picked it up after spending three months debugging a firmware patch that kept silently corrupting checksums. The problem wasn't the patch itself — it was how some hex editors zero out padding bytes during save, which shifted the CRC. Hexanaunt doesn't do that. It preserves every byte exactly as it reads it, which turned out to be the difference between a working build and a bricked device. The core workflow is straightforward: load a file, scroll through the hex and ASCII columns, click a byte to edit it, and hit Save. That's it for basic use. The advanced stuff comes from its scripting engine and its byte-range filter, which you can chain together for batch operations on multiple binaries.

Installing and Running It

There are two installation paths depending on your environment. If you're on a POSIX system, the standard route is pulling the release tarball from the official GitHub repository and extracting it to /usr/local/bin. The binary is self-contained — no runtime dependencies beyond libc. For Windows, there's a standalone .exe that runs without installation. You just drop it into your PATH. I've tested it on Windows 10 and 11, and it behaves identically to the Linux version. There's no installer wizard, no registry keys, no telemetry service running in the background. Once installed, you launch it from the command line:

hexanaunt [options] <filename> local f = hexanaunt.open("firmware.bin")
f:fill(0x1000, 16, 0x00)
local md5 = f:md5()
hexanaunt.print(md5) Byte order confusion: Hexanaunt displays multi-byte values in the endianness of the host system. If you're analyzing a little-endian file on a big-endian machine, the displayed values will look wrong. Always check your system's endianness with a simple test script.

Encoding assumptions: The ASCII column assumes UTF-8 by default. If you're working with legacy encodings like ISO-8859-1 or CP1252, the display will be incorrect. You can override this with the --encoding flag, but it's not always obvious what the default behavior is. Save without verify: Hexanaunt doesn't prompt you before saving modifications. If you accidentally edit a byte and hit Save, the change is permanent. I always use --view mode for initial inspection and only switch to write mode when I'm ready to commit. It's a small habit that's saved me from more headaches than I can count.

Alternatives and When to Use Them

If Hexanaunt doesn't fit your needs, there are other options. HxD is the go-to for Windows users who want a simple, free hex editor with a familiar interface. It's polished and reliable, but it lacks the scripting capabilities that make Hexanaunt useful for automation. Bless is a solid choice for Linux users who prefer a graphical tool. It's lighter than some alternatives and supports macros, but again, no scripting engine. For people who need deep structural analysis, radare2 is the gold standard. It's powerful, supports dozens of architectures, and has a rich plugin ecosystem. The tradeoff is that it has a steep learning curve and a less intuitive interface. I recommend starting with Hexanaunt if you need a blend of simplicity and automation. If you find yourself constantly hitting its limitations, gradate to radare2 or Ghidra depending on whether you're doing reverse engineering or full-scale binary analysis.

Final Thoughts

Hexanaunt is a solid tool for everyday hex editing and analysis. It's not perfect, and it has clear blind spots, but those blind spots are usually easy to work around with a little scripting or by pairing it with another tool. The key is understanding what it can and can't do before you invest time in learning its quirks. I've been using it daily for over a year now, and it's replaced three different tools in my workflow. The time I save on automation more than makes up for the occasional frustration with its limitations. If you're doing binary work regularly, it's worth a look.