首先致以被标题的"解包器"三字吸引来的伸手党们,让你们失望了。

同时对想以此盗取他人劳动成果的家伙予以最大程度的鄙视.

本文会提供RGSS3A加密包的解包算法,但不会提供直接的程序,我相信大家也不想RMVX ACE重蹈XP的覆辙。

同时希望理解以下算法的朋友不要制作拆包器去发布,给游戏梦想留一点后路。

咱这里的成品图一张。

【此图中语法错误可以无视,UI界面是拜托一个朋友做的,他闲麻烦直接谷歌翻译了。】


于是就这样,正文开始.

rmvx ace的加密包相对于XP加密并没有太大改进,无非是magickey不再固定,并且一共有2个magickey.

rgss3a格式的文件,前8字节为字符串"RGSSAD  ",用于判断是否为标准加密包.

紧接着4个字节,为此加密包的基础key.

以变量读入之后,key*9+3可以得到结构信息magickey.这是重点.

接着开始就是文件信息,文件头占16字节,每4字节为一个信息

将这些数据全部与magickey异或之后可以得到解密的文件信息.

第一个四字节为本段数据的偏移量。

第二个为数据长度。

第三个为本数据magickey,

第四个为此文件名长度.

接下来的若干字节长度为上面第四个四字节取到的长度,为文件名

与magickey异或之后可以得到解密的文件名.

再紧接着16字节为下一个文件的文件头,如此循环,直到文件头储存的偏移量为0.

数据部分,逐四字节与本数据magickey异或运算,每异或一次,magickey=magickey*7+3

直到文件末尾.

以上即是解包算法.

最后还请各位同仁不要发布解包器,本文提供给同在研究的朋友一个参考.