地图加密就是通过特殊方法破坏地图文件,使它可以在魔兽中运行,却不能被World Editor读取。
目前有哪些加密方法
现在已有很多种加密War3地图的方法。
1: 破坏 MPQ 文件头大小信息
魔兽争霸III的地图就像一个Zip文件。 首先是一个 512 字节大小的地图文件头,它记录了一些信息。然后附带一个MPQ 档案,
这个MPQ 档案中包含了一个地图所需的全部文件。 MPQ 文件的前4个字节是一个标识符。它可以被识别为 ’MPQ’。接下来的4个字节
是文件头大小,通常是16进制 hex 0x20 00 00 00的形式。 有些加密者将 0x20 00 00 00 改成一个随机数值,例如hex 0xF6 6E BA 76这个
样子。 目前多数 MPQ 程序因为大小错误而无法打开这样的 MPQ 档案。而 Warcraft3 似乎忽略了这种错误的文件头大小,所以这些地图
本文来自织梦 仍可以在魔兽中运行。
这种加密只要把数值改回 0x20 00 00 00就可以轻易破解掉。
为了能够正常打开地图并提取文件信息,本(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 文件。
dedecms.com
2b: 删除 war3map.w3c, war3map.w3s, war3map.w3r 文件
war3map.w3c 存储了world editor的镜头设置。 war3map.w3s 存储了world editor在地图中所设置的声音。 war3map.w3r 存储了world editor中的区域设定。
这几个文件同样只对World Editor有用,而且同样可以通过 war3map.j 文件进行重建。参见上面的 “删除地图内的 war3map.wtg 文件“ 。
3: 隐藏 war3map.j 文件
有些耍小聪明的加密者找到了隐藏 war3map.j 的办法,这样我们就无法用一个网页脚本来轻易将它解出了。
正规的地图中 war3map.j 是直接保存在根目录里的。而这些加密者发现把它移动到 “Scripts\“下面也可以正常运行。
只要知道了这一点,就很容易破解这种加密 ;-) 非常感谢 BahamutZERO 和Quantam 帮我解决这种方法。
dedecms.com 4: 打乱war3map.j 文件
有些加密者认为自己很聪明,他们用随机数字重命名了所有的变量和函数。这使常人很难读懂 war3map.j 文件。但这对脚本是不起作用的。
我为这个所写的脚本根本不在乎关键字,它只搜索模式,所以我仍然可以从地图中提取我所需要的信息 ;-)
只要借助能够重建 war3map.wtg 的脚本,这种加密方法同样可以破解。恐怕你唯一没法改变的就是已经重命名的变量和函数。
但这并不重要,因为你仍然可以用world editor打开它。 ;-)
加密的性如何
正如你所读到的,地图加密也许可以避免菜鸟们用world editor打开你的地图。
但事实是只要魔兽可以运行你的地图,就有办法修复它,从而可以用 World Editor打开它。
地图加密的利弊
有利面:
- 让菜鸟们不能打开你的地图并篡改它。
内容来自dedecms
- 让你显得很聪明
- 因为删除了某些文件而使地图变小。
不利面:
- 它实际上是没用的
- 大家不能研究你的地图
- 自己丢失原版后将无法对地图进行修改
地图的破译
大家拿到文件包以后可以看到里边有很多文件,
这个都是用mpqediten解开地图以后的文件
只不过我根据这些文件的文件头整理了一下,重新命了一次名。
这些文件都是地图的原始数据我们可以*直接修改它们来达到修改地图的内容。
下边是一些有用的文件的列表
war3map.w3u 单位
war3map.w3t 物品
war3map.w3b 可破坏的
war3map.w3d 地形装饰物
war3map.w3a 技能
war3map.w3h 魔法特效
war3map.w3q 升级
等等,这些都是地图的基本设置文件,
dedecms.com 我们可以用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就可以了。
修改地图就是这么简单,欢迎大家修改地图,尤其是好地图