How is Spore hiding creature information in PNG images?

chocoboselect.jpgchocobospore.png

There's a neat trick in the "Sporepedia," the online bestiary where Spore players can show off their monstrous creations. The data for the creature itself — the actual data needed to generate the full 3D model inside the game, along with its accompanying statistics — is embedded inside the .PNG file that can be downloaded from the creature's Sporepedia entry.

Embedding data inside an image file is an old trick — usually you can just append some data in the file after the "END" chunk that tells the parser that it can stop reading the image data — but Spore is doing something trickier than that. Some Reddit commenters took a crack at decoding Maxis's system. While they've yet to find the solution, commenter "McHoff" has an interesting theory:

It looks like there's information encoded in the alpha channel of the image. Even in 'empty' parts of the image the alpha channel is noisy. A quick histogram shows that there are an awful lot of pixels with an alpha of 0 or 1, and then what looks like a normal gradient for the rest of the range. I'd guess they stuffed about 1k of information in there.
If someone can figure out how to rewrite the creature generation metadata but leave the image file intact, it would be possible to pass around one of the Spore creature PNGs — easily dropped into email, IM, or wherever — that appears to be a cute, friendly creature, but instead generates a monster with an anus eye when opened inside the game.


Discussion

Take a look at this

omg i think i just got goatsed

Post a comment

Anonymous