偶久网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索

网站魔兽热门地图

查看: 4997|回复: 3

魔兽地图加密及相关反作弊原理

  [复制链接]
邪恶叔 title=
发表于 2010-9-3 18:41:52
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(如果没有则参见上面的第二条解压Scriptswar3map.j), 注意如果mpq工具如果不能读取则按照上面第3条的做法修复文件头
3.结合所学的Jass看war3map.j, 就能知道对方地图的处理过程
4. 关于地形的获得我还没有好办法, 我把别人的地形文件导进自己的地图会出现读取错误, 估计是有些选项必须符合, 考虑到有些人加密地图就是为了保护地形不让别人"盗版", 所以我也没有多做研究, 只要知道war3map.j的内容就可以学习别人所有的地图处理过程了

总结一下:
解密是很难的, 但是可以通过解压war3map.j来分析别人的地图, 希望这篇文章对大家关于加密解密的争论能给出一个理论依据
下边是一些有用的文件的列表

war3map.w3u 单位

war3map.w3t 物品

war3map.w3b 可破坏的

war3map.w3d 地形装饰物

war3map.w3a 技能

war3map.w3h 魔法特效

war3map.w3q 升级

等等,这些都是地图的基本设置文件,

我们可以用WE中的物品编辑器直接导入进行编辑。

war3map.wtg 触发事件

这个是保存各种触发事件的地方。我们在地图里搞装备合成,刷怪,作任务

等,都是依*触发指令来完成的。但是一般的加密地图都把war3map.wtg和war3map.wts删除了。

war3map.j jass数据库

这个是地图的核心,所有跟地图设置有关的资料如地图摆放的建筑物、角色、技能、触发事件的指令等等,只可惜是用jass语言保存的。如果你懂jass的话可以在这个文件里任意改动任何数据。包括触发指令。

war3map.shd 地层数据

war3map.wpm mp3,wav等媒体文件的设置

war3mapPreview.tga 地图缩略图

war3mapmap.blp 图形文件的设置

war3mapmisc.txt 游戏平衡常数

下边是最重要的,因为很多人把文件修改完以后都不知道该怎麼还原。

我们现在就要用到mpqediten或MPQWorkshop了

新建一个MPQ文件,然后把那些文件全部添加进去再保存。

现在你们得到一个MPQ文件了。下一步是添加w3x地图文件的文件头

你们用UltraEdit-32随便打开一个w3x魔兽地图文件和自己的mpq文件。

对比一下,你们就会发现w3x文件比MPQ文件多了一个16字节的文件头

后边的事我不用说了吧,w3x文件中复制,然后在MPQ中粘贴这个

16字节的文件头,然后把后缀名MPQ改成w3x就可以了。 几个地图编辑帮助软件

WE Unlimited
   简单介绍:WE Unlimited 是 WE 的一个功能性补丁~~增加了很多的功能~~详细说明请看压缩包中的说明文件~~

Zepirs Map Editor
   简单介绍:这是外国高手自己做的地图编辑器~~虽然看起来没有官方 WE 实用和优秀~~但是却拥有一些 WE 不具备的功能~~比如可以不顾规则乱放东西~~
   注意事项:被这个工具编辑后的地图最好用 WE 读取并存储一次以消除可能的错误~~

   Ext Protect V0.1.0.7b [Size: 92 kb]
   简单介绍:小巧的加密软件,使用是很方便的:)

   Heavy Locker [Size: 236 kb]
   简单介绍:基本上是用来为地图加密的~~在国外评价似乎比较高
   注意事项:此工具并没有 解密 功能~~

   Jass Editor
   简单介绍:可以方便的编写 JASS 程序的工具,里面提供了很多的函数调用及语法说明等。
快速回复 返回顶部 返回列表