之前我写过一个“RGSSAD终极解包器”可以自动猜测RM加密包的初始MagicKey,并进行解包那个解包器缺点很多,本来一开始做的时候有考虑加入智能猜测内部文件、抗文件名混淆等,但考虑到没有什么意义最终没有做。而且以后也没有打算再更新
其实不管rgssad_wx也好,catpaws也好都是运用和RM默认读取加密资源包的相同算法来解包的。要防止这些工具解包单单修改初始的MagicKey是还不够的。所以如果想防止被人用这些工具解包最好的办法就是更改打包结构了。
而更改打包的结构不是不可能但是我相信一般人不会去做那种吃力不讨好的事情。其实有一个最简单的办法就是修改MagicKey的变形公式,哃样能避免被默认算法解包
打包的函数在地图编辑器exe里,解包的函数呢则是在rgssxxxx.dll里。我是用OllyDBG打开的脱壳后的文件搜索下面列的代码块。
RMXP的MagicKey变形函数在exe和dll里都各有4处(分别是加密文件名长度、加密文件名和加密文件数据……)。变形公式大概如下:
RMVX稍微有些不同但是結果和RMXP是一样的,估计是编译器不一样的原因变形公式如下:
注意这些代码并不一定是挨着出现的。不过相隔的距离也不会太远
修改恏地图编辑器的4处密匙变形公式和dll里对应的4处变形公式,便拥有了你自己的打包工具和解包算法初步防止了分析文件格式解包的工具。鈈过不要忘记给你修改过的地方,用虚拟机保护软件之类的处理一下不然被人反汇编后分析代码,就又能轻松解包了