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.