Offset checker
Compare 2+ files position by position and report which byte offsets agree across all of them.
Runs on your device. The file is never uploaded.
Offset checker takes two or more files and reports how many byte offsets hold the same value across all of them. Disagreeing offsets are printed with every file's byte in hex, capped at 200 entries so the report stays readable. The comparison stops at the shortest input, so a file that agrees everywhere compared can still differ later.
Questions
What does it compare?
Every byte position across all the files you dropped, at the same time. For each offset up to the length of the shortest file, it checks whether all files hold the same byte there. The first line reports how many of those offsets agree. Positions where they do not agree are listed with each file's byte in hex, in the order the files were dropped.
How many files can I compare?
Two or more. Fewer is refused with "offset-checker needs at least 2 files, got 1". There is no upper limit in the code, though every file is held in memory at once and the comparison runs over the shortest one. Comparing two files gives a run-length region view via Diff bytes instead, which is easier to read for a pair.
Why does the list of disagreements stop?
The listing is capped at 200 offsets so the output stays readable. The agreement count on the first line is not capped and covers every compared offset, so use that number for the overall picture and the list for the first places to look.
What if the files are different lengths?
The comparison runs over the shortest file and says so, listing each file's size and the number of bytes compared. Bytes past that point are not examined at all, so a file that agrees everywhere it was compared can still carry a completely different tail.
What is this good for?
Finding the fields that vary across a set of files that share a layout: several dumps from the same device, a set of licence blobs, ransom notes from the same builder, or repeated captures of one protocol frame. The offsets that disagree are the variable fields, and the offsets that agree are the fixed template.