那是因为那些RPG地图有加密的不让你随便改图的再说那样也没意思的魔兽地图加密原理什么是地图加密地图加密就是通过特殊方法破坏地图文件,使它可以在魔兽中运行,却不能被WorldEditor读取。目前有哪些加密方法现在已有很多种加密War3地图的方法。1:破坏MPQ文件头大小信息魔兽争霸III的地图就像一个Zip文件。首先是一个512字节大小的地图文件头,它记录了一些信息。然后附带一个MPQ档案,这个MPQ档案中包含了一个地图所需的全部文件。MPQ文件的前4个字节是一个标识符。它可以被识别为’MPQ’。接下来的4个字节是文件头大小,通常是16进制hex0x的形式。有些加密者将0x改成一个随机数值,例如hex0xF66EBA76这个样子。目前多数MPQ程序因为大小错误而无法打开这样的MPQ档案。而Warcraft3似乎忽略了这种错误的文件头大小,所以这些地图仍可以在魔兽中运行。这种加密只要把数值改回0x就可以轻易破解掉。为了能够正常打开地图并提取文件信息,本网站(wc3sear.ch)将自动修复这类加密文件。(译者:这一段的术语翻译可能并不正确,因为我对文件结构本就知之甚少。望谅解)2:删除地图内的war3map.wtg文件war3map.wtg文件中包含了地图中所用到的变量,触发,数组等必需信息。但这个文件只对World-Editor有用。war3map.wtg文件丢失或者被改动都将导致World-Editor无法读取地图。当然,这种加密也可以完美地解除。通过一个小程序你就可以利用war3map.j文件中存储的信息来重建war3map.wtg文件。本网站忽略掉war3map.wtg文件,而是直接从war3map.j文件中提取诸如触发数目,变量数目等信息。你可能注意到,既然一个简单的PHP脚本就可以提取出war3map.j,那么使用其它脚本就有可能重建war3map.wtg文件。2b:删除war3map.w3c,war3map.w3s,war3map.w3r文件war3map.w3c存储了worldeditor的镜头设置。war3map.w3s存储了worldeditor在地图中所设置的声音。war3map.w3r存储了worldeditor中的区域设定。这几个文件同样只对WorldEditor有用,而且同样可以通过war3map.j文件进行重建。参见上面的“删除地图内的war3map.wtg文件“。3:隐藏war3map.j文件有些耍小聪明的加密者找到了隐藏war3map.j的办法,这样我们就无法用一个网页脚本来轻易将它解出了。正规的地图中war3map.j是直接保存在根目录里的。而这些加密者发现把它移动到“Scripts\“下面也可以正常运行。只要知道了这一点,就很容易破解这种加密;-)非常感谢BahamutZERO和Quantam帮我解决这种方法。4:打乱war3map.j文件有些加密者认为自己很聪明,他们用随机数字重命名了所有的变量和函数。这使常人很难读懂war3map.j文件。但这对脚本是不起作用的。我为这个网站所写的脚本根本不在乎关键字,它只搜索模式,所以我仍然可以从地图中提取我所需要的信息;-)只要借助能够重建war3map.wtg的脚本,这种加密方法同样可以破解。恐怕你唯一没法改变的就是已经重命名的变量和函数。但这并不重要,因为你仍然可以用worldeditor打开它。;-)加密的安全性如何正如你所读到的,地图加密也许可以避免菜鸟们用worldeditor打开你的地图。但事实是只要魔兽可以运行你的地图,就有办法修复它,从而可以用WorldEditor打开它。地图加密的利弊有利面:-让菜鸟们不能打开你的地图并篡改它。-让你显得很聪明-因为删除了某些文件而使地图变小。不利面:-它实际上是没用的-大家不能研究你的地图-自己丢失原版后将无法对地图进行修改就我所知,魔兽地图还有很多加密方法,解密的方法也各不相同.这个只是范例.主要分3种加密谈加密地图的原理,破解加密地图的可能及研究加密地图的方法1.不可还原式删除加密,即破坏性加密说明:这种加密难度小,方法简单,比较常用原理:魔兽的地图是一个mpq压缩文件,里面存放了一些游戏中和WE中要用的数据,其中一部分数据是只有WE要用而游戏时不要用的,我们可以将它们移掉,造成启动WE无法读到相关数据方法:1.用ImportManager导入这些文件的替代空文件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进制工具把这个位置改为即可还原最后讲一下如何研究加密的地图:1.学会Jass语言2.用mpq工具解压出war3map.j(如果没有则参见上面的第二条解压Scripts\war3map.j),注意如果mpq工具如果不能读取则按照上面第3条的做法修复文件头3.结合所学的Jass看war3map.j,就能知道对方地图的处理过程4.关于地形的获得我还没有好办法,我把别人的地形文件导进自己的地图会出现读取错误,估计是有些选项必须符合,考虑到有些人加密地图就是为了保护地形不让别人"盗版",所以我也没有多做研究,只要知道war3map.j的内容就可以学习别人所有的地图处理过程了总结一下:解密是很难的,但是可以通过解压war3map.j来分析别人的地图,希望这篇文章对大家关于加密解密的争论能给出一个理论依据
略懂社热议