解密地图!!
1.不可还原式删除加密, 即破坏性加密
说明: 这种加密难度小, 方法简单, 比较常用
原理: 魔兽的地图是一个mpq压缩文件, 里面存放了一些游戏中和WE中要用的数据,
其中一部分数据是只有WE要用而游戏时不要用的, 我们可以将它们移掉, 造成启动WE无法读到相关数据
方法: 1.用Import Manager导入这些文件的替代空文件
2.用mpq工具删掉这些文件
破解可能: 由于需要的文件已经被移掉, 而Jass->Trigger的还原难度非常大, 所以基本不能完全还原原来的地图
2.可还原式移动加密
说明: 这种加密比较复杂, 但可以利用一些密钥还原
原理: 根据上面一种方法的原理, 我们把地图里的一些文件改名为特殊的文件名或者移动到特殊的目录去,
并且删掉(listfile), 这个文件是用于获取mpq格式的文件里面的文件列表的, 这样WE也无法读取到这些文件从而无法启动
方法: 根据一定的算法把密钥哈希成一个字符串, 然后把文件改名或者移动到用这个字符串生成的文件名里.
还原时只要有密钥就可以找到移动后的文件并还原
破解可能: 这些算法通常是md5等不可逆算法, 或RSA等大素数可逆算法,
加上我们根本连移动或改名后的文件名或路径都不知道, 基本很难破, 除非你知道密钥
3.可还原式破坏WE显示加密
说明: 该方法简单但如果被知道了了方法很容易破解
原理: WE启动时和读取地图时会读取一些模型, 音乐, 贴图等, 如果我们导入一些错误的文件,
在WE读取时会先读地图里的文件, 就会因为这些错误的文件而出错
方法: 我自己不太清楚可以导哪些文件.
破解可能: 如果你知道这个方法, 那么只要从地图里删除坏文件就可以了
然后讲一下几个加密中会用到的技巧:
1.删掉(listfile), 这样别人不能看你的文件列表, 无法知道你的加密方法
2.把war3map.j移动到Scripts\目录下, 这样仍然被游戏读取, 但是一般人不知道就会无法解压出这个文件
3.针对一些mpq工具可能会将文件头部的一个数改掉导致mpq工具无法处理,
通常offset是0x218, 用16进制工具把这个位置改为20 00 00 00即可还原
最后讲一下如何研究加密的地图:
1.学会Jass语言
2.用mpq工具解压出war3map.j(如果没有则参见上面的第二条解压Scripts\war3map.j),
注意如果mpq工具如果不能读取则按照上面第3条的做法修复文件头
3.结合所学的Jass看war3map.j, 就能知道对方地图的处理过程
4.关于地形的获得, 我把别人的地形文件导进自己的地图会出现读取错误,
估计是有些选项必须符合, 考虑到有些人加密地图就是为了保护地形不让别人"盗版",
总结一下:
解密是很难的, 但是可以通过解压war3map.j来分析别人的地图,
先用ultraedit 软件打开加密的图,找到00000200h行
第9-16个数字 改成20 00 00 00
就可以用mpqworkshop
打开这地图了
然后把单位(war3map.w3u)、物品(war3map.w3t)、技能(war3map.w3a)等文件解压出来
然后打开地图编辑器再打开物品编辑器,分别导入
单位、物品、技能等文件就可以随便改了。改好了输出这些文件,
再由mpqworkshop 打开这张图把改好的文件再添加进去。就ok了
关于地形的获得我有一个方法,自己摸索出来的,就是把别的没加密的地图把war3map.wts、war3map.wct解压出来
把它添加到加密的图中,那么用WE就可以完全打开了。