大家都知道,WPE可以用来修改网络游戏,但是很多人对此的理解有误,我并非WPE的达人,简单的给不知道原理的朋友说说吧。
其实用WPE要改的,并不是网络游戏里那些固定的数据,这个定义和单机修改不同。比如你的钱10000元,那是不能够把它直接弄成100000元的。至少我还没听说能够这样直接去修改它。
那么我们要改的是什么呢,这个要先说说网络游戏的封包。
比如传奇为例,每个客户端在游戏时,都会和服务器端产生数据交换。例如你杀掉一只鸡,就会产生一个数据包,内容大概就是你的地图位置、坐标,所杀的怪物种类、怪物坐标等信息,服务器接收到后,处理出结果,在服务器里你的人物资料里+上“鸡”的经验值,再随机选取鸡是否掉出物品等,也形成一个数据包返回到你的机器上,显示你获得的经验,并显示“鸡”变成尸体和其他相应的处理结果。
这时,我们就想,如果服务器接收到的你发出的数据包内信息变成了(杀了一只黑猪),那么会怎样呢?不错,如果成功的话,服务器对你杀了一只鸡的处理结果就成为了:你的经验+350,而不是一只鸡那点经验。
当某一个封包成功被修改后,我们还可以连续对服务器发出同样的信息来不断获得相似的效果,比如:或者是明明身上没东西我们还一直还一直卖"500元的东西",或者没有任何怪物你还"一直打350的EXP"!这就是WPE修改网络游戏的基本思路,说到底就是:变更传送到服务器的正确信息,改为我们想要得到的目的的条件,骗取服务器作出我们想要的处理结果。
在最早的尝试对网络游戏修改时,就已经意识到直接修改数据行不通(除非你能侵入服务器),所以采取这样欺骗性的方法显得更加隐蔽和有效。当然也比较容易达到目的。然而现在的网络游戏的封包基本都是加密了的,你打开它们往往会看得一头雾水,什么都看不懂。这样的情况下就需要经验和破解了。不过我也没有那个本事。
造成可以修改封包的原因是由于现在的网络游戏数据量太大,互动式的方法形成必然。服务器只担任了一个处理和保存资料的角色,大多数动作其实是在你的机器上完成的,这样才使得这个修改成为了可能。
如果是那种服务器只接收你键盘的操作,一切数据处理都在服务器完成的的游戏的话(就是说不存在封包交换),这个方法就不行了