File formats as Emoji: 0xffae
tldr: https://emoji.exponentialdecay.co.uk
File Formats As Emoji (0xFFAE or 0xffae) might be my most random file format hack yet. Indeed, it is a random page generator! But it generates random pages of file formats represented as Emoji.
The idea came in 2016 with radare releasing a new version that supported an emoji hexdump. I wondered whether I could do something fun combining file formats and the radare output to create a web-page.
Along came a spare moment one weekend, some pyscript, and bit of sqlite, et voilà. File Formats as Emoji (0xFFAE) was made a reality.
I had a lot of experience with creating very specific byte-representations of files with the skeleton-test-suite or skeleton-test-corpus. The skeleton-test-suite is our shortcut to representing digital files as they are recorded in PRONOM. Skeleton files are not complete files, rather, they represent the essence of what a PRONOM-based identifier uses to identify file formats in the wild. It is used to support testing of file format signatures, to build new format identification tools on the back of PRONOM, identify problems with PRONOM signatures, and for integration testing in DROID and Siegfied.
A skeleton file is often a much smaller, more discrete pattern, but interesting to look at nonetheless.

I created a small script in 2016 to run radare over the skeleton suite (available these days from Richard Lehane’s builder), turn its output into a contiguous stream, and present it as a web-page.
The result was a 3.6 megabyte website which doesn’t sound like much, but it takes its time to load all of the emoji characters and often crashes Chrome for me, even today. It also wasn’t a lot of fun to navigate or look at.
I thought the site had gone but I found it while doing some server maintenance and decided to try and resurrect it as a new site.
I have wanted to create a random page generator for a while, and so that, combined with a desire to look at pyscript again, and maybe see what I could do with sqlite, and I had a plan for an implementation.
Using some of my existing templates and tooling, the site took just about half a day to get into a good shape to decide to keep going with the work, and another full half-day or so to turn into something presentable.
You may have already taken a look, but if not, please check out 0xffae and let me know what you think! What’s your favorite emoji representation? Are you happy with the representation of your favorite file format?
I hope it might be useful when introducing folks for file format identification, or even just as an ice-breaker at training or other events.
I like the site for its whimsy. I like how the structures of PRONOM’s signatures are visible even if it doesn’t make too much sense on the surface. It’s not quite art, but it is like something discovered, or ‘found’ in something that exists on-disk. The contrast between parts of the object that format identifiers use and don’t use is quite high, acting like a mask on top of the original data stream. Clicking on the primary results window will show the bytes-representation and you can copy and paste this into a hex editor and DROID or Siegfried should identify the results. I might expand on that in future to get the skeleton files back out of the same database.
Please, give it a whirl!
Let me know what you think, and what else you might like to see included.