Visual Analysis of Binary Files
binvis.io
binvis.io
This version is written in React but when time permits I plan to release an updated version written in Rust, along with a library of fast implementations of space-filling curves and related utilities.
Super Metroid has a surprising amount of filler scattered all over.
It only really looks scattered because the visualizer uses a space-filling curve instead of laying out the bytes of the file linearly. If you change the curve to "scan" instead of "cluster", it becomes a little easier to see what the filler is: it's the unused space at the end of each ROM bank.
(As someone who's spent a lot of time in that particular binary, I think the use of the space-filling curve obscures a lot of details that would be a lot easier to spot otherwise -- such as the structure of the ROM banks, the location and layout of various pieces of compressed and uncompressed data, and repeated structures like a couple KB of common routines that are duplicated at the beginning of every bank containing enemy code.)
and binvis is the coolest name!!
https://gdal.org/drivers/raster/ers.html
does not in any way do it justice.
What it allows you to do is create a text header description for a binary file .. pretty much any binary image (and not intended to be image) "raw" (ish) format that existed then and now.
Band interleaved, band seperated, row interleaved, column orientated, etc. 8 bit, 12, 24, 32 bit, big or little endian, with or without header "junk" to skip at start of file and|or at the start of each "virtual row"
The handy hack was the ability to view as image and file that had time series aquisition by sketching out how to block it, how to understand the binary, insert optional colour maps .. and then being able to rapidly visually scan 2GB or 16GB of binary blob with real time fly about zoom in zoom out capability.
Intended for multichannel satellite | aircraft | other instrument data with a variety of metadata (timing, position, instrument orientation, etc) - useful far beyond its core target.
Addendum: for the curious, somewhat better description of the .ERS layout from PDF page 33 onwards of https://www.aseg.org.au/sites/default/files/ER%20Mapper%20Cu...
https://en.m.wikipedia.org/wiki/File:Iconic_COSMAC_Elf_space...
The machine was short enough on RAM by default that even at runtime, the screen buffer was shared. The random noise at the top of the screen is the program used to display the image on the bottom.
https://web.archive.org/web/20040902191610/http://www.c64hq....
https://news.ycombinator.com/item?id=11077222
https://news.ycombinator.com/item?id=9140249
and other instances without comments.
Visualizing binaries with space-filling curves (2011) - https://news.ycombinator.com/item?id=24813704 - Oct 2020 (15 comments)
Visualizing binaries with space-filling curves (2011) - https://news.ycombinator.com/item?id=14544191 - June 2017 (8 comments)
Binvis.io – Visual Analysis of Binary Files - https://news.ycombinator.com/item?id=11077222 - Feb 2016 (9 comments)
Binvis.io: visual analysis of binary files - https://news.ycombinator.com/item?id=9140249 - March 2015 (1 comment)
Visualizing binaries with space-filling curves - https://news.ycombinator.com/item?id=3449743 - Jan 2012 (20 comments)
Others?
Here's the report with pics and videos if that sounds interesting!
If you get stuck and / or end up doing something cool, shoot me an email at hn at my website on my profile!
But it is a really cool tool, if you have to figure out a binary file format looking for patterns is certainly very useful.
Good times, but I can't seem to remember the tool's name.