Hex Viewer
Open a local file as hex and ASCII/UTF-8, jump to an offset, search for bytes, and chart block entropy.
Your inputs and files stay in your browser
Drop a file here
Drop a file here
Any local file. It stays on this device.
Visible rows are read as small slices. Search and entropy run in a Web Worker. File contents are never uploaded or saved.
Choose a file to see a virtualized hex dump, search matches and block entropy.
Go to offset
Search
Block entropy
Higher bars are closer to random data. Click a bar to jump to that block.
Export a range
Both offsets are inclusive. Decimal or 0x hex. The download is a slice of the original file, up to 256 MiB.
Each row is 16 bytes. Search keeps at most 200 matches and reads 1 MiB at a time. A needle is at most 256 bytes. This page does not edit bytes or disassemble code.
On this page
Hex Viewer opens any local file as a virtualized hex dump. Each row shows 16 bytes as hex, ASCII and UTF-8. Only the rows on screen are read, so a large binary does not become one long page.
Detailed Functionality
The file stays on this device. The first 512 bytes are checked for a known signature (PNG, JPEG, GIF, WebP, PDF, ZIP, gzip, ELF, PE, MP3, MP4 and the other types the site already recognizes). If no signature matches, a UTF-8 probe labels the file as text or leaves it as unknown binary.
Search accepts text or hex (89 50 4e 47 or 0x89504e47). The scan reads 1 MiB at a time, overlaps the needle so a match can cross a chunk boundary, and stops after 200 hits. You can cancel the scan. Block entropy uses 4 KiB blocks. Files up to 1 MiB are covered in full; larger files use 256 evenly spaced samples. The chart is an estimate of randomness, not a full histogram of every byte in a multi-gigabyte file.
Export downloads an inclusive byte range as a slice of the original file, up to 256 MiB, without building a second copy of the whole file in the page. Bytes are not edited, and the page does not disassemble machine code.
Practical Examples
PNG signature: a file that starts with 89 50 4E 47 is labeled PNG. The first bytes are shown above the table, and the offset column starts at 00000000.
Jump: type 0x20 or 32 and choose Go. The virtual table scrolls to the row that contains that byte.
Text or hex search: search for Hello as text, or for 48 65 6c 6c 6f as hex. Each match is an offset you can click. Repetitive data stops at 200 matches.
Range export: first byte 0 and last byte 15 downloads those 16 bytes. The file name includes the hex range.
How to Use This Tool
Open a local file
Drop or choose any file. An empty file is rejected. The header read checks the leading bytes and shows the size, the detected type and the row count.
Move through the dump
Scroll the virtual table or type a decimal or 0x offset. Each row is 16 bytes: hex, ASCII (dots for non-printable bytes) and UTF-8 (a split character is a dot).
Search or measure entropy
Search for text or hex. Cancel leaves the file open. Measure entropy to draw one bar per 4 KiB block, or 256 samples when the file is larger than 1 MiB. Click a bar to jump there.
Export a range
Enter the first and last byte, inclusive. Download starts a slice of at most 256 MiB. The rest of the file is not copied into the download.
Tips and Best Practices
- The table reads only the visible window with file slices. Jumping near the end of a large file does not load the middle.
- A hex needle must contain an even number of digits. Spaces, colons and dashes are ignored, and one leading 0x is allowed.
- Search overlap keeps a match that starts in one 1 MiB chunk and ends in the next. The same match is not listed twice.
- Entropy of a block of identical bytes is 0. A uniform mix of all 256 byte values is 8 bits/byte.
- More than 200 matches stops the scan early. Narrow the needle if you need a later hit.
- This page does not patch bytes, save a project, or upload the file.