Tutorial :Reverse Engineering: How do I identify an unknown compression method?


I'm with a group of modders attempting to reverse engineer and mod a Blu-Ray player. We're stuck because the firmware code seems to be compressed, and the decompression code is nowhere to be found. Presumably, the decompression is handled by hardware.

My question is, with only the the compressed output, how do we determine what type of compression algorithm is used? We've managed to find a repeating string, which presumably encodes repeating data.

The compressed 0x00 bytes starts with 0x00 0x15 and then the repeating sequence (F8 06 FC 03 7E 01 BF 00 DF 80 6F C0 37 E0 1B F0 0D) and varies at the end.


Our documentation and efforts are in the thread above. The firmware binaries are located in the thread above.


I would recommend looking at the hardware, and seeing if that support any native encryption or compression schemes. I note encryption because such a string is possible as well; for example the Nintendo DS uses RSA encryption that I would presume is handled at a hardware level to some degree, though don't quote me on that.

In short, looking at the hardware datasheets (if available) would be your best course of action. I'm assuming that if you can get a hold of the firmware, you're also capable of viewing the hardware itself.


I know this is an old post but here is a link to the DS decompression code written in C#. Maybe it can be a headlight in the dark for you if you are in fact still attempting this effort.

DS DECOMPRESS: A compressor and decompressor for the compression formats commonly used in games made for Nintendo consoles/handhelds.


I do not have much experience with it but you could do a side channel attack by trying to analyze the power consumption. A good friend of mine did this to be able to crack some AES encryption. Maybe this will lead you to your solution:


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »