文档库 最新最全的文档下载
当前位置:文档库 › wpe实现网络游戏数据的截取和修改

wpe实现网络游戏数据的截取和修改

wpe实现网络游戏数据的截取和修改
wpe实现网络游戏数据的截取和修改

我用这个标题是想吸影你们,其实没G,大家在焦急的等待G的出现不如动手去做个!!还涨点技术!!

在篇首,我还是那句老话,希望大家:珍惜好游戏远离外挂。外挂固然可以让游戏变的简单,但是他却把游戏唯一的乐趣抹杀了。同时希望大家可以在今后的日子里继续支持我,常来我的地盘看看:)

为了我的叙述方便,我采用了部分示例进行说明,但是为了不影响游戏的正常秩序,我用的都是不影响游戏效果的一些例子,同时我不想对这篇文章做过多的解释,希望无论是谁,看懂了就当看了个热闹,看不懂也不要来问我,我不会给予任何帮助的。

一、前言:

在正式进行游戏修改之前我先来说说一些基本概念:

首先我强调的是,网络游戏的修改与单机游戏修改完全不同!网络游戏的修改并非光靠改几个简单内存数据就可以修改的。记得我的易容篇刚刚出来的时候qq群里很多朋友都在问我同样一个问题:为什么我用GM8.0修改的钱不能用啊?那是一定的!你修改的仅仅是自己机器的内存,而你真正的钱都存在服务器那里,你只改自己的机器一点用没有。

其次,我要说的是本文的用途仅仅是我想写写自己对外挂的看法,希望将来可以有更好的抵制外挂的方式,我不希望我的文章被某些人利用去做一些不法的事情。另外我想说下,这篇文章在发表前我就和几个人说过如何制作外挂而且就你一个自称小号的向我询问了具体方法,(收费版,这里我就不说是谁了),并且多次强调应把这方面的聪明才智用在正途!但是当晚我就看到了系统说有人试图复制神器而被封号!我想说俩字:活该!

最后,如果想理解本文,需要有一定汇编基础,并且熟悉计算机网络,同时有高级语言编程功底,否则就当是个休闲文章看看吧。

二、修改器简介:

我修改网络游戏用到的工具主要有以下几个:WPE、masm32、Dephi、Idga后面3个都是编程用的,这里就不做过多的介绍了,我下面主要说说封包截取工具WPE。

wpe所要改的,不是“游戏里面的数值”,而是“伪造信息封包”。什么意思呢?就是我们用wpe所要改的,并不是"生命力由100变成10000"之类的东西,这种东西无法用wpe改,我们要改的是把"我卖了一个500元的东西" 改成"我卖了一个5000元的东西"或把"我得了10的exp"改成"我得了1000的exp"之类的,或者是明明身上没东西还一直卖"500元的东西" 或没怪物还"一直打10的exp"。因为wpe是个一封包截取软件,它能截取网络上的数据封包,《完美世界》采用的是C/S模式,我们的信息全在服务器上面,想从服务器上修改我们的个人用户信息,可能性微乎其微,但是客户端安装在你的机器上,玩游戏的时候,你发出指令,其实就是向服务器发送封包,服务器接收到封包后进行分析,然后返回结果,结果也是以封包的形式发送到你的机器上,你的机器接收到后就可以看到结果了。这就给我们修改

造成了机会,如果我们把封包里的数据改了会怎么样呢?比如有些游戏,可以换魔法比如《奇迹MU》的“火龙地狱火”(不用说了一定可行)。这种方法理论上是可行的,可是为什么有时实现不了呢??因为服务器还有应对措施,对一些重要的数据往往需要检测多项,我们修改的时候只是修改了其中一项,是不行的。而且往往数据包是加密传输的,这也给我们找正确的数据制造了麻烦。

但是服务器的监测工作是有限度的,因此不可能全部都由服务器完成,很多耗资源的监测都放到了客户端上,于是这就给一些非法人事提供了很大的方便。

三:实战——WPE截取操作篇

一开始,当然是执行游戏了,进入游戏后再按Alt+Tab跳出游戏,打开wpe程序(我用的是一款自己改编的WPE.9,可能和大家所用的不一样)

单击目标程序并选择《完美世界》的进程。

我们以完美为例,当你运行完美的时候在这里我们可以看见完美的执行文件,双击elementclient.exe,现在我们将拦截完美的封包!

请看上图标题栏现在显示的是拦截完美的封包.

单际三角按钮后开始追踪游戏,“II”是暂停,方块是停止。

截获封包后,会看到很多这样的信息:

SEND-> 0000 23 35 3C 3C 3C 3C 3C 42 58 3C 3C 3C 3C 3C 3C 3C #5<<<<<<<<<<

SEND-> 0010 3C 3C 56 62 61 5D 57 63 5D 65 57 5F 3C 6C 49 6E <

RECE-> XXX.XXX.XXX.XXX 0

SEND-> 0000 23 36 46 5E 65 66 56 52 41 6A 5A 42 61 6A 48 3F #6F^efVRAjZBajH?

SEND-> XXX.XXX.XXX.XXX 0 2A *

SEND后面的数字是发送封包的内容,RECE后面的数字是接收封包的内容,以16进制数和acsII两种方式体现。整个程序的上面有储存清除查找3个选项!至此,第一步截取完成了。下面进行的是要过滤了,呵呵,不要打瞌睡,你要想做外挂,这里刚完成了10%下面才刚昂开始

四:实战——WPE教学Filter篇

学过DSP的应该知道Filter是滤波器,对了!Filter 执行的就是滤镜功能,它能把截获到的封包中的数据进行修改,然后将修改后的数据传输到服务器,达到欺骗服务器的目的,这也是我们所要完成的任务。

先选中左边的一个Filter打开Filter窗口。

详细功能如下图所示

当FILTER在启动状态时,开启的按钮会呈现红色。当启动FILTER时,随时可以关闭这个视窗。FILTER将会保留在原来的状态,直到您再按一次停止/启动钮。只有FILTER启用钮在停止的状态下,才可以勾选Filter前的方框来编辑修改。当您想编辑某个Filter,只要双击该Filter的名字即可。

双击Filter名字(如Filter 1)进入编辑状态,下图

这里有几个名词,需要注意下:

普通(Normal)模式:如果你所修改的数据在数据包中的位置是固定的,可以用一般模式,这也是我们常用的模式。

递进(Advanced)模式:如果你所修改的数据在数据包中的位置不是固定的,只能用递进模式,后面会有例子说明。

以下两项只有选择了递进模式后才可以选择

数据包开头(Form the beginning of the packet):从截获到的封包的第一个位置开始替换

自发现有连锁的位置(Form the position of the chain found):从数值被发现的位置开始替换连续数值

例:当在游戏中,不想要用真实姓名,因此每次都用修改过的假名传送给对方。

同样,在多次拦截后可以在有些封包里发现面有你的名字。

假设您的名字是Shadow,换算成16进位是"53 68 61 64 6F 77〔打算用“0000”6F 6F 6F 6F 20 20〕来取代。

1) SEND-> 0000 08 14 21 06 01 04 ......

2) SEND-> 0000 01 06 99 53 68 61 64 6F 77 00 01 05 ...Shadow...

3) SEND-> 0000 03 84 11 09 11 09 ......

4) SEND-> 0000 0A 09 C1 10 00 53 68 61 64 6F 77 00 11 .....Shadow.

5) SEND-> 0000 0A 09 C1 10 00 00 66 52 44 .......

仔细看,可以发现名字在每个封包中并不是出现在相同的位置上

- 在第2个封包里,名字是出现在第4个位置上

- 在第4个封包里,名字是出现在第6个位置上

在这种情况下,您就需要使用ADV ANCED MODE

- 您在搜寻列"SEARCH〔填上:53 68 61 64 6F 77 "请务必从位置1开始填

- 如果想要从原来名字Shadow的第一个字母开始置换新名字,就要选择从数值被发现的位置开始替代连续数值(from the position of the chain found)。

- 现在,在修改列MODIFY 000的位置填上:6D 6F 6F 6E 20 20 此为相对应位置,也就是从原来搜寻栏的001位置开始递换。

?/P>

退出编辑状态,享受我们的修改成果吧!!

When you are old and grey and full of sleep, And nodding by the fire, take down this book, And slowly read, and dream of the soft look Your eyes had once, and of their shadows deep; How many loved your moments of glad grace, And loved your beauty with love false or true, But one man loved the pilgrim soul in you,

And loved the sorrows of your changing face; And bending down beside the glowing bars, Murmur, a little sadly, how love fled

And paced upon the mountains overhead

And hid his face amid a crowd of stars.

The furthest distance in the world

Is not between life and death

But when I stand in front of you

Yet you don't know that

I love you.

The furthest distance in the world

Is not when I stand in front of you

Yet you can't see my love

But when undoubtedly knowing the love from both

Yet cannot be together.

The furthest distance in the world

Is not being apart while being in love

But when I plainly cannot resist the yearning

Yet pretending you have never been in my heart.

The furthest distance in the world

Is not struggling against the tides

But using one's indifferent heart

To dig an uncrossable river

For the one who loves you.

倚窗远眺,目光目光尽处必有一座山,那影影绰绰的黛绿色的影,是春天的颜色。周遭流岚升腾,没露出那真实的面孔。面对那流转的薄雾,我会幻想,那里有一个世外桃源。在天阶夜色凉如水的夏夜,我会静静地,静静地,等待一场流星雨的来临…

许下一个愿望,不乞求去实现,至少,曾经,有那么一刻,我那还未枯萎的,青春的,诗意的心,在我最美的年华里,同星空做了一次灵魂的交流…

秋日里,阳光并不刺眼,天空是一碧如洗的蓝,点缀着飘逸的流云。偶尔,一片飞舞的落叶,会飘到我的窗前。斑驳的印迹里,携刻着深秋的颜色。在一个落雪的晨,这纷纷扬扬的雪,飘落着一如千年前的洁白。窗外,是未被污染的银白色世界。我会去迎接,这人间的圣洁。在这流转的岁月里,有着流转的四季,还有一颗流转的心,亘古不变的心。

相关文档