rgssad加密文件解包器是一款针对RPG游戏所推出的游戏解码器。它的功能十分强大,能够可以查看RPGVR游戏里的东西和修改,可轻松配上RPG制作文件,让你完美解码RPG游戏包,想怎么玩都行。
【RGSSAD资源格式】
开始的8字节是文件标志,用于判断是不是RGSSAD文件。然后是n个
struct SubFile
{
unsigned long filenamesize;
filenamesize 字节的文件名;
unsigned long filesize;
filesize 字节的文件正文;
};
不过所有的SubFile结构都是xor加密过的。MagicKey的初值是0xDEADCAFE
MagicKey 的变换规则为 MagicKey = MagicKey * 7 + 3;
其中文件名是按字节异或,filenamesize filesize 以及文件正文都是按双字异或的。
【防范措施与加密方案】
方案一:使用自己的加密/解密算法
第一种加密方案是修改RGSS102J.dll中的解密算法,然后自己把素材打包成RGSSAD格式。
此方案要求使用者对程序设计以及二进制文件的修改有一定的基础。
由于小宝现在还没有试过外挂dll这种技术,所以这里介绍一个相对简单的方法——修改MagicKey的初始值。在前面一节中,我们知道RMXP是使用0xDEADCAFE作为MagicKey的初始值,那么我们把RGSS102J.dll中的DEADCAFE修改掉,然后自己打包就可以防范那些一般的解包工具(比如我提供的那个,还有RGSSAD Extractor)。
当然,如果你觉得有必要的话,还可以给这个修改过的dll文件加一个强壳,然后随游戏发布。
方案二:混淆文件名
第二种加密思路是混淆文件名。在Windows操作系统下,有 //:*?"<>| 这9个字符是不能用作文件名的。除去//表示文件目录,我们还有7个特殊字符可用。如果在原有文件名中加入这几个本来不能用的字符,那么解包程序就会因为不能正常创建文件而提取失败。
注:此方法需要自己打包资源文件,以及修改rxdata文件,工作量比较大。
混淆不能绝对保证自己的游戏不被盗用,它的主要目的是打击盗用者的信心,让他在还没有导出全部素材的时候就已经垂头丧气,精疲力尽了。
当然对于游戏而言,无论什么样的加密方案都只是增加破解者的工作强度,而不能真正保护自己的素材不被提取,因为素材终归是要在游戏中使用的。