逆向工程:如何识别未知的压缩方法?

时间:2009-04-27 21:11:32

标签: compression reverse-engineering lzma lzo lzh

我和一群试图逆向工程并修改蓝光播放器的模组。我们陷入困境,因为固件代码似乎被压缩了,解压缩代码无处可寻。据推测,解压缩由硬件处理。

我的问题是,只有压缩输出,我们如何确定使用什么类型的压缩算法?我们设法找到了一个重复的字符串,可能会编码重复数据。

压缩的0x00字节以0x00 0x15开头,然后是重复序列(F8 06 FC 03 7E 01 BF 00 DF 80 6F C0 37 E0 1B F0 0D)并在结束时变化。

http://hej456.com/forum/viewtopic.php?t=832

我们的文档和工作都在上面的主题中。固件二进制文件位于上面的线程中。

3 个答案:

答案 0 :(得分:1)

我建议查看硬件,看看是否支持任何本机加密或压缩方案。我注意到加密,因为这样的字符串也是可能的;例如,Nintendo DS使用RSA加密,我认为它在某种程度上是在硬件级别处理的,但不要引用我。

简而言之,查看硬件数据表(如果有)将是您最好的行动方案。我假设如果你能掌握固件,你也可以自己查看硬件。

答案 1 :(得分:1)

我知道这是一个旧帖子,但这里是用C#编写的DS解压缩代码的链接。如果你实际上仍然在尝试这种努力,也许它可以成为你在黑暗中的头灯。

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

答案 2 :(得分:1)

我对此没有多少经验,但您可以通过尝试分析功耗来进行侧通道攻击。我的一个好朋友这样做是为了能够破解一些AES加密。也许这会引导您找到解决方案:

http://en.wikipedia.org/wiki/Power_analysis