首先致以被标题的"解包器"三字吸引来的伸手党们,让你们失望了。
同时对想以此盗取他人劳动成果的家伙予以最大程度的鄙视.
本文会提供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
直到文件末尾.
以上即是解包算法.
最后还请各位同仁不要发布解包器,本文提供给同在研究的朋友一个参考.