我得到了一些我找不到任何线索的游戏压缩数据。所有压缩文件签名都以:[ SK_ASC ] 和未知的压缩方法开头。
我从 RAM/Executive 文件中获得了一些信息,但仍然无法正常工作。我认为压缩是无损格式(但它不是 LZO 或 ZLIB)。谁能帮我弄清楚压缩,以及如何解压?
- 上面的所有示例文件都可以在这里找到:http : //goo.gl/JJQfl4
=== 10.25.14 添加 ===
以下是我测试过但不匹配的压缩方法列表:
- LZ10
- LZ11
- LZ77
- LZO1x-1
- LZO1x-999
- LZSS
- LZW
- LZMA
- HUFF 块大小 4 & 8 字节
- RLE
- ZLIB
=== 10.26.14 添加 ===
今天我通过内存转储来分析一些东西。
首先,EMnMenu.cmp
当我通过猜测它的文件名进入主菜单时,可以加载压缩文件。并且有非常相似的文件未使用。( EKisokMenu.cmp
, EE3Menu.cmp
)
所以我尝试通过相互替换文件来检查内存转储。我得到dump_menu.ram
, dump_e3menu.ram
, dump_kioskmenu.ram
. 通过比较三种不同的 ram dump 数据,
我发现只有特定的偏移数据发生了变化。
通过使用这种方法,我终于得到了一个通过偏移量转储的解压数据:0x80CA6980。解压数据是众所周知的纹理,它是第一个以 0x00 0x20 0xAF 0x30 开头的 4 字节签名。(在这里检查纹理格式:http : //goo.gl/UqLz3m)
我尝试通过压缩解压数据并与原始数据进行比较来找到压缩算法。但是我上面测试的算法不匹配。
无论如何,我通过 ram dump 和压缩数据上传了几个解压数据,所以你可以在这里查看:goo.gl/JJQfl4
- CMP是压缩数据,始终以SK_ASC 开头。
- BIN与 CMP 相同。
- DCMP是从内存文件中的即时副本,它是从偏移量 0x80CA6980 中提取的。
- DMP是减去 0x80CA6980 的数据值校正,因为有太多内存报废虚拟(如果我猜对了,这是清理后的解压缩数据)
添加不适用于常规的 deflate/zlib 所有压缩级别。
== 11.09.14 ==
我发布了几个论坛来提供帮助,但数周以来都没有任何线索:(
- http://zenhax.com/viewtopic.php?f=9&t=313&sid=3172c154c5da95476795ac742501fec1
- http://encode.ru/threads/2074-Identifying-compression-method?p=41188&posted=1#post41188
== 11.15.14 ==
其他论坛用户对我说有适用于 IDA 的 Gamecube DOL(执行文件)插件。所以我使用它们,现在我找到了解压主/算法子程序。有人能帮我找出描述它是如何工作的吗?
(我不擅长拆卸,所以我现在正在学习)
需要基于 Power PC 的拆卸技能