HEX: Look at Any File as Bytes
Sometimes the only way to answer a question about a file is to look at what is actually in it. Drop a file here and read it byte by byte: what it claims to be, what its structure says, how random each part of it is, and what any run of bytes means read as a number. A 200 MB file opens as fast as a small one, because only the rows on screen are ever read. Nothing is uploaded, and nothing is written back.
The file
It stays on your machine. This page reads slices of it to draw the rows you are looking at, and never writes anything back.
The bytes read-only
Nothing searched for yet.
This file is too tall for a browser to lay out row by row, so the scrollbar moves through it proportionally rather than a row at a time. Go to offset is exact.
Click a byte to select it. Drag, or shift-click, to select a range.
Structure
Entropy
Shannon entropy of each block, in bits per byte. Zero means every byte in the block is identical; eight means every value turns up equally often. Click the graph to jump to that part of the file.
Click a bar to select the first byte of that block.
Compressed and encrypted data both sit at the top of this scale and cannot be told apart by it. English text sits around 4.2, machine code around 6, a run of zeroes at 0. A step change usually marks a boundary: the end of a header, the start of an embedded file, a packed section in an executable.
Take the selection out
Everything here works on the bytes currently selected. Nothing is uploaded to produce it.
What this is, and what it is not
It reads. It does not write. There is no editing here and there will not be. A hex editor that can save is a tool that can quietly corrupt an original, and a browser tab is the wrong place to risk that. Everything on this page is a view of the file you chose; the file on disk is never touched.
Only the rows you can see are read. The file is held as a Blob and slices of it are read on demand, so opening a 200 MB image costs the same as opening a 2 KB one. Scrolling reads a window around the view and keeps it. That is why the scrollbar is right from the first moment even though almost none of the file has been looked at.
The type is a guess from the first few bytes. File type detection here matches signatures at fixed offsets, which is what the file command does first and what every operating system does to pick an icon. A signature can be absent from a perfectly valid file, and it can be present in a file that is something else entirely. The matched bytes and their offset are shown so you can judge it yourself.
The structure pane reads the first 4 MB and the last 128 KB. That is enough for every header, for a PNG's chunks, a JPEG's segments, a GZIP's fields, an ELF or PE header and section table, and for a ZIP's central directory and a PDF's trailer, which both live at the end. A structure that reaches past those windows is reported as far as it was read and no further.
Entropy is a measure of surprise, not of encryption. Each block is scored in bits per byte: 0 means every byte in the block is the same, 8 means every value appears equally often. Compressed and encrypted data both sit near 8 and cannot be told apart this way. Text sits near 4 to 5, and machine code around 6. A flat high region means the data is dense; it does not mean it is a secret.
Nothing leaves this tab. The file is read by this page and by nothing else. It is never uploaded, never cached in a service worker, and never written to local storage. Only your choice of row width, offset base and search mode is remembered.
Questions people ask
How big a file can it open?
Larger than you will want to scroll. Only the visible rows are ever read, so the viewer itself does not care about size. Searching and the entropy graph do read the whole file, which on a very large one takes time and shows progress while it happens. Both can be stopped.
What do the numbers in the status bar mean?
The bytes you selected, read as every integer and floating-point type they could be, in both byte orders. Little-endian puts the least significant byte first and is what x86 and ARM use; big-endian is the other way round and is what most network protocols and many file formats use. If a number looks absurd in one column and sensible in the other, you have found the file's byte order.
Can I search for a string that is not ASCII?
Yes, as UTF-16 little-endian, which is how Windows stores text inside many file formats and how a filename appears inside a ZIP written on Windows. Searching for the same word as ASCII and as UTF-16LE often gives completely different answers about the same file, and that difference is usually the interesting part.
Why does the entropy graph have a flat top?
Because 8 bits per byte is the ceiling. Anything already compressed reaches it: a ZIP, a JPEG, a PNG's image data, an MP4. If a file is flat at 8 everywhere except a small header, it is compressed or encrypted throughout, and there is nothing more to be read out of it by eye.
Is it safe to open a suspicious file here?
Opening it here is safer than opening it in the program it was made for, because nothing executes: the bytes are read and displayed as bytes and nothing else. That is not the same as saying the file is safe. Nothing here defuses anything, and a document you inspect here can still be dangerous in the application that opens it.
Can I get some of the bytes out?
The selection can be copied as a hex string, as a C array, as base64, or saved as a file of its own. That last one is how you carve an embedded image out of a container: select from its signature to its end marker and save the range.