How the File Hex Editor Works
AnyTool reads the dropped file locally with FileReader into an ArrayBuffer and renders it as a classic 16-bytes-per-row hex + ASCII dump: an 8-digit offset gutter, grouped hex pairs, and an ASCII pane where non-printable bytes show as dots, with selection synced across all three columns. Double-clicking a byte lets you overtype it a nibble at a time in the hex pane or a character at a time in the ASCII pane; edited bytes are highlighted and a full undo/redo stack records every {offset, oldByte, newByte} change. A search box finds hex patterns or text with find-next/previous, a go-to field jumps to any decimal or 0x offset, and a data inspector decodes the bytes at the cursor as int8/16/32/64, uint8/16/32/64, and float32/64 using a native DataView with a little-endian/big-endian toggle plus an ASCII/UTF-8 preview. The row list is virtualized so only the visible rows render, keeping large files responsive, and saving re-serializes the edited buffer into a Blob downloaded under the original filename. Everything runs client-side with no server and no runtime CDN.
- Hex + ASCII dump with an offset gutter and selection synced across all three columns
- Byte editing in hex or ASCII with edited-byte highlighting and full undo/redo
- Hex pattern and text search (find next/previous) plus go to any decimal or 0x offset
- Data inspector decodes int/uint/float in little- or big-endian via a native DataView at the cursor
- Row virtualization keeps large files smooth; save re-serializes the buffer to a Blob download
