FlexHex

FlexHex is a freeware hex editor for Microsoft Windows that can edit files, NTFS alternate streams and sparse data, OLE compound files, logical disks, and physical drives.

Technology
FlexHex uses the 'edit stack' model, representing the file being edited as the unchanged original stream and a stack of primitive editing operations. The original file is kept intact and gets modified only when the user selects the Save command. The advantages of this model are 1) the file does not need to be read into memory so there is no file size limit, and 2) an unlimited Undo/Redo list can be implemented simply by traversing the operation stack.

FlexHex is written on Visual C++ and MFC, which makes it very fast while keeping the size small enough.

Features
In addition to the standard features more or less typical for other hex editors, FlexHex offers a few unique ones. Specifically, FlexHex is the only hex editor that can create or edit NTFS alternate streams, sparse files, and OLE structured storage.


 * Edits files, alternate streams, OLE compound files, logical and physical disks,
 * Can edit files up to 8 exabytes long,
 * Includes unlimited Undo and Redo,
 * Allows to define arrays, structures, and unions, and to map them to the file contents,
 * Supports arithmetic and bitwise operations on data,
 * Supports multi-format search, including single-pass search for multiple patterns,
 * Scans file for strings, Unicode strings, or GUIDs,
 * Full and partial comparison of files and streams,
 * Multi-format copy, paste, drag-and-drop,
 * File / selected area printing,
 * CRC-32, MD5, SHA-1, SHA-256 checksums,
 * Cryptographically strong AES-based random number generator,
 * Browsing of registered COM classes.