拆解解压方法(PowerPC ASM)

逆向工程 拆卸 解压 电源
2021-06-15 22:10:40

未知的游戏数据压缩方法(Gamecube)继续
我有以:[ * SK_ASC* ]开头的压缩数据和未知的压缩方法。
以下是我测试过但不匹配的压缩方法列表:

  • LZ10
  • LZ11
  • LZ77
  • LZO1x-1
  • LZO1x-999
  • LZSS
  • LZW
  • LZMA
  • HUFF 块大小 4 & 8 字节
  • RLE
  • ZLIB

研究了2个星期,我知道压缩算法略有修改,比zlib/gzip好。
它可能是异或或加密的,所以它与常规的不匹配。
最后,我通过IDA Pro从主执行文件中找到了解压子程序

子程序和示例上传到这里:http : //goo.gl/2bQNfj
(需要 PowerPC 架构组装技能)


我不知道这是什么意思,因为我不擅长 PPC 反汇编。
有人可以帮忙找出代码的含义吗?您可以将其描述为 C 语言或其他可读语言吗?




PS我已经发布了几个论坛来提供帮助。

  • http://zenhax.com/viewtopic.php?f=9&t=313&sid=3172c154c5da95476795ac742501fec1
  • http://encode.ru/threads/2074-Identifying-compression-method
2个回答

根据 ws 的回答,执行以下操作:

从二进制文件中提取解压函数。(在 Linux 上,使用dd if=Start.dol bs=1 skip=1292664 count=7364 of=decomp.ppc)。

将可重定向反编译器设置为raw machine code, decomp.ppc, 文件格式无关紧要, power pc, bigendian, 节地址和入口点 addess = 0x8013FC58

使用这些参数,您将可以反编译您的代码。不过,结果并不完全是我所说的可读。

您仍然会遇到问题,即代码调用了一些不在截取文件中的更多函数,但您可能可以用相同的方式处理它们。

您可以尝试在代码中使用可重定向反编译器