WPE详细教程二

本教程的安排如下:首先是讲为什么会有封包,封包的结构是怎样的。
  然后介绍TCP/IP技术的相关内容,定位封包在网络传输中的层!
  然后介绍WPE的工作界面,以及各功能按扭的作用!

  
前面的内容属于了解阶段的内容,帮助您了解相关内容,对下面的学习会有帮助!但是您不需要深入认识,只要了解就够了!
  下面是进入实质性阶段,这阶段属于理解、运用阶段,要求您完全掌握
首先是讲封包的拦截,为了方便您学习,我们从最简单的数据入手Internet Explorer 的封包!
然后,我们进入游戏数据的认识和修改阶段,先没有直接进入网络游戏,因为网络游戏的封包是加密的,不容易认,我们从本地连机游戏入手,这里是从连机的暗黑入手,发送的数据都很容易辨认!
接下来就是真正的网络游戏的修改阶段,这里为帮助大家能尽快认识封包特别是加密封包的数据,我们特地提出了两条黄金准则:比较准则结构准则!熟练地运用这两条准则,您一定可以游刃有余地分析封包,修改游戏更加得心应手!希望您一定认真掌握这些规律!
为了帮助大家彻底掌握封包技术,我们在大家完全掌握了封包后,给大家举出了很多游戏修改的实例,供大家参考学习,这里主要举的例子是:石器、千年、传奇、金庸等常见游戏的修改的典型范例!以帮助大家彻底掌握WPE修改游戏的技术!
在掌握了修改游戏的基础上,我们更进一步:制作可以独立于WPE的外挂,可以不需要WPE而独立运行,这样的外挂即小又方便使用!
讲完制作独立外挂,其实本教程就可以结束了,但是,WPE1.3是win98下运行的,我们为了大家能制作出可以在win2000和winXP下运行的外挂,在最后介绍的是WPE pro0.7c制作外挂的方法!相信您通过本教程的学习,一定会受益匪浅!

封包初现
editoreditoreditor
editor
editoreditoreditor

  
 现在经过前面那么多的准备,终于可以走如正题了,希望您前面的准备充足,不要一进入正题就满脸雾水!
按照为了关照入门者,我们从最简单的封包开始,首先,我们选择我们经常使用的Internet Explorer研究,我们经常使用它上网浏览网页,对它再熟悉不过了,什么?你不知道什么是Internet Explorer?我倒,下面的这个东西就是了,看看吧!熟悉吧?

4feec10737a01bc87a894741.jpg


先启动这个IE,然后进入WPE选择这个程序,选择方法如下:

0cc220fae597868c9f514641.jpg


就是白色字那个了,我们选定它,作为我们研究的对象!然后是发送封包接收封包的问题了,为了从最简单的入手,我们先把网线拔了,什么?不明白网线是什么?那我无法说明了,你别问我,问旁边的人吧,一定有人知道的,反正就是你上网那根线,先把它拔下来,这样就没有封包返回,方便研究!下面看看,我们从最简单的入手,首先我们发送一个地址,就在IE中输入地址,然后按Enter,这里我们输入的地址是:http://www.ff.com结果如下

ed3ff3cd7fd363540eb34541.jpg

       
看到了吧,右边有封包的分析,对于简单的未加密的封包,WPE可以自动分析,下面我们输入地址:http://www.ee.com 结果如下:

b6c308954b21ff0d7af48042.jpg


好,我们下一章开始分析封包了,准备好了吗?

          

封包的组成
editoreditoreditor
editor
editoreditoreditor

一个封包,包含有如下元素,也就是组成部分吧!
1.需要传输的数据(主要的和最重要的部分就是这个,外挂修改的也是这部分)
2.序列号(每个封包必须有自己的序列号,以便到了接收端后可以按照序列号重新组装)
3.IP地址,一般都有这一部分,通过网络解析才知道封包从那里来,到那里去!
当然封包的内容不止这些,但是,我们了解这些就够了。
注意:在传输中,所有数据都是16位或者32位的,所以截获的封包看起来总是怪怪的!
面给一个封包的基本格式,给大家看看(下面是基本封包格式,如果您可以背下来他们的格式,这对您修改游戏是非常有用的!强烈建议您看一些关于封包格式的文章,您就可以很容易地把封包看清楚,很快知道哪个才是真正的数据):
Source Port (16) | Destination Port (16)
Sequence Number (32)
Acknowledgment Number (32)
Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)
Checksum (16) | Urgent Pointer (16)
Options (0 or more 32 bit words + padding)
DATA
...

稍微注意以下,您可以看到,每行的长度都是32字节!
大家看到了吗?data就是数据,那是最关键的部分,我们使用WPE修改的就是那一部分!
关于封包,是网络方面的知识,要写出来,估计可以出一本书了,这里不再详细讲解,如果您要详细学习请您参考相关资料。

封包分析1

为了方便分析,我们把图片都放到一起大家看看!

ed3ff3cd7fd363540eb34541.jpg

上面发送的封包是http://www.ff.com
下面发送的封包内容是:http://www.ee.com

b6c308954b21ff0d7af48042.jpg


我们比较一下两个封包,可以发现,相同的部分很多,按我们的分析应该差别只应该在“ee”与"ff"的区别,因为发送的内容只有这点差别,但是上面的封包显示出来的却不是这样,为什么?
其实,他们确实是一样的,在IE的封包里面,01、02、03、04都代表点的意思,也就是代表:"."这个意思,那么你再分析就发现完全和我们预料的一样了,这里是IE发送的封包,没有加密的,您可以直接读出来的!但是这不是10进制,而是16进制,因此,我们必须把它翻译成为10进制,以方便我们阅读,怎么办?
别忘了,我在WPE下载页给出了一个Asic II工具,现在就用吧,
好,我们来翻译这个封包,前面的不管,我们只关心封包里面的数据:打开Asic II工具,输入"W",点查看,看到了什么?------“77”(十六进制),看到了吧,我们输入的有3个“W”,这里是不是有3个77啊?前面已经讲过,02代表点号,那么,接下来是不是也是我们预料的是“f”呢?我们继续用工具查一下看看,果然不出我们分析所料,真是f,不用多猜了,接下来的内容就是".com"怎么样?是不是很简单呢?下面我们把这个过程完整地给大家演示一遍!
首先,拔掉网线(这里是为了简单才拔的,其实不拔也可以,只是会出现返回封包,不容易辨认)打开WPE,然后,打开Internet Exproler,然后在WPE中选中我们要截取封包的Internet Exproler程序,然后点拦截封包,然后在Internet Exproler中输入一个简单的网址,按回车后,在WPE中开始拦截,看到发送了一个封包后,点停止,就看到我们需要的封包了,下面是图解过程:
1.打开WPE

f0f1219b7656a6b0c8eaf45d.jpg


2.打开Internet Exproler
4feec10737a01bc87a894741.jpg
3.打开在选择游戏中选择Internet Exproler程序,点两下
0cc220fae597868c9f514641.jpg
4.在Internet Exproler中输入http://www.ff.com,然后按回车

3195202a4631ed3d5243c15d.jpg


5.在WPE中点拦截

73a1164f6ee40a33afc3ab84.jpg


点三角形

edefd35c9155ae46faf2c05d.jpg


当收到封包后点红色的正方形,封包就出现了!
ed3ff3cd7fd363540eb34541.jpg
注意,图上的最后一副图的左上角有个蓝色的“S”,意思是:这个后面的封包是发送的,英文的单词是"sent"如果出现的是“R”,那么意思是它后面的封包是接受到的而不是发送的,区别如下图!

5247ac016eee0b06728da52e.jpg


ed3ff3cd7fd363540eb34541.jpg

封包分析2

经过前一章的讲解,相信大家对封包有了粗略的了解,这一章是要大家分析封包,其实封包的拦截不是很宽难,难就难在封包的分析上,从习惯上来说,大家都习惯辨认10进制的东西,对16进制,实在是不习惯,没关系,我们会让大家逐渐习惯的!如果大家愿意更好地掌握16进制,强烈建议大家手里拿一张Asic II码对照表,这样可以方便大家学习,不仅可以反查,而且可以顺查!方便多了!
前一节,我们把网线拔了,先在查上吧,难题要来了!准备好了吗,好,LET‘S GO!
先看下面的图片!

我们来分析一下上面的内容!
首先几点说明,这是对Internet Exproler进行的封包操作,请求的地址暂时不说,您可以分析出来的!下面是分析说明!

首先,本地发送请求到服务器!发送内容是“21”,注意:您一定很容易地认为发送的是“21”,其实,数字也好,字母也好,一定要注意,全都是16进制的,所以,这个“21”不是我们平常的21,而是16进制的21,那我们来算一下21等于多少(计算21转换为10进制等于多少)?21(16位)=2 x 16 + 1 = 33 (10进制),关于进制计算,我们专门的章节有说明的
再查ASCII表,看看33对应的是什么字符?查到了吗?是“!”,呵呵,WPE不是已经在右边给我们显示了吗?不过我们要习惯分析哦,到游戏里面可就没那么多的方便了!
那么发送一个!是什么意思呢?其实这个是网络连接的问题了,不必细究,要详细了解的请查看关于网络连接3次握手的相关内容!这里不做讲解!这个与游戏修改无关!
第3行47是什么意思呢?算一下:47(16)=4 x 16 + 7 = 71(10)括号内16代表16进制,10代表10进制,那么71代表什么?查表ASCII结果:71对应字母“G”
45呢?45(16)=4 X 16 +5 =69(10),查表出来的结果是:E
请你不要看右边的分析,我知道右边有现成的结果,但是你要自己分析,不然你拿着游戏就无从下手了!简单的分析就是这样了,是不是很轻松?好,再继续分析几个!
第15行,的3A什么意思?
3A(16)=3 X 16 + 10 = 58(10)
查表得,58对应“ :”
倒数第2行B7什么意思?
B7(16)=11
X 16 + 7 =183(10)
查表得到183对应:特殊字符,这里我无法帮你打出这个字符,抱歉!
注意,这里WPE也翻译不出来对应的字符了,看到了吗?WPE只翻译了最后两个,如果我们自己需要怎么办?当然是自己分析了,所以说不要看WPE帮你的分析,自己分析很重要!

ba1ce7d3142710d9a9ec9ab3.jpg

黄金法则----比较法则

前面我们已经分析了简单的封包,为了我们以后能分析复杂的封包,我们这里给出分析封包的第一条黄金法则------比较法则!
所谓比较法则就是通过比较,得到 我们需要的东西,封包往往由于于我们平常的习惯有区别,我们难于辨认,只有电脑才喜欢,而且,封包有自己结构,不是一个封包的所有内容都是有用的,其中很多是我们所不需要的,我们不必去详细了解每一部分到底是什么意思,那么我们怎么得到其中的包含的关键信息的部分呢?那就是……比较,对,是比较,方便又准确的方法

那么怎么比较呢?请看下面的分析!
1.相同比较
2.不同比较

所谓相同比较,这是游戏中经常用到的!因为游戏封包都是加密的,对同一个内容的封包也是不同的,我们做同一个操作,结果会有不同的封包,这是相同比较,例如,在游戏中,我们卖掉一个小血瓶,看看封包是什么?千万不要以为以后卖血瓶永远是这个封包了,对所有封包都不要有这个思想,否则,祸患无穷!我们再卖一个小血瓶,再看看封包内容,比较一下这两次封包相同的地方在那里,不同的地方在那里?这个很重要哦! 如果完全相同,那我们再卖一个血瓶看看,如果还相同,再卖一个看看,还相同?如果真是这样,10次都是这个结果,我们可以初步断定,血瓶的封包是不变的,我们可以利用了!怎么利用?不用急,在后面说明,现在还早!
如果第一次和第二次得到的封包不完全一样怎么办?比较一下,找到不同的地方在那里,这些地方的区别分别是什么意思,关于不同地方是什么意思的分析,我们不再分析了前面已经分析过了!
如果再卖掉一个血瓶,第三次和第二次也不一样怎么办?老办法,分析相同的地方和不同的地方啊!

分析下面两个封包:

ed3ff3cd7fd363540eb34541.jpg

b6c308954b21ff0d7af48042.jpg
看看,相似的地方很多吧?呵呵,不同的地方并不多!这样对照分析是不是很简单呢?

比较法则----相同比较

前面说了相同比较,这节我们详细介绍一下:
比较下面两个封包:
封包一:

游戏名称:快打旋风线上版?#123
发一个小火球:你可能得到如下封包:

090db2861e0b7e3867096e8c.jpg


封包2:

7f43dc17a722660fc93d6d8c.jpg


区别是不是很小,其中接收部分是完全一样的,但是发送部分有所区别,这个区别是坐标信息!
这个封包来源:星际争霸游戏中连机对战,时,一个士兵移动一步和再移动一步产生的封包,动作是完全相同的,所以,不应该有太大区别!
下面给出一个在线游戏的封包对比分析:

SEND-> 0000 0A 09 C1 10 00 00 FF 52 44

再发一个小火球,得到的封包可能就变成这样了!


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

为什么两次不同呢?呵呵,这是游戏了,封包是加密的,不是轻易就可以看出来的了!而且,这里的0A可能有它自己的含义了,不是可以查ASCII表可以查到的了,你需要猜它是什么意思了!我们暂时不分析,到分析游戏封包时再分析,这里主要讲对比!

从封包上看,我们两次动作是一样的,因此,得到的封包也还是大致一样的,很相似,区别只在最后几个上,有这样的分析,实际对我们制作滤镜是很有帮助的!如果我们再收集一点其它信息,实际上我们就可以破译这个封包了,如果我们知道这个小火球打到别人身上,伤害值是16,那么我们就可以知道,

16(10)=10(10)

不会看不明白等号了吧?十进制的16等于16进制的10,那么看看 那里有10呢,呵呵,两个封包都有哦,这个就是火球的封包,其中10表示伤害值,如果我们制作一个滤镜,但检测到这个相似的风暴,就自动修改成FF会怎么样呢?

FF(16)=15 X16 +15=255(10)

明白了吗?你的小火球攻击将达到255的伤害,是原来的多少倍哦?

比较是很简单的,有比较就容易辨认,请您自己多分析一些实际例子,相信您很快就会学到这种方法的!这里不多举例子了!

比较法则----不同比较

前面说了相同比较,这节我们详细介绍一下不同比较:
相同比较是为了在相同的封包中找不同点,以便于找到封包的本质内容,那么不同比较呢,就是相反的,是在不同封包中找相同点,以便找到封包的核心内容!
举个离子:如果你想知道卖东西的封包有什么特点,那么你只卖血瓶是不够的,你该卖掉其他东西,比如卖魔法药,卖了小血瓶,买中型血瓶,然后卖大型血瓶,共同点是都是卖,不同点是卖的东西不同,我们可以利用他们的封包中不同中的相同来找到卖东西的封包的共同点,从而为我们所用!
援用前面的例子
我们利用IE(什么,你又不知道IE是什么了?我到,就是Internet Exproler,前面早说过了),先请求地址http://www.ff.com,得到的封包如下:



ed3ff3cd7fd363540eb34541.jpg


然后请求地址:http://www.ee.com得到如下封包:

b6c308954b21ff0d7af48042.jpg
我们有理由详细:请求地址的第一步操作都是这样的了,发送的封包都应该是这样的了!区别都只在于WWW和COM之间的部分有区别,那么我们可以对以后所有请求地址的操作进行控制,例如:我们可以控制其中关键代码,就是把其中的“ff”换成我们希望的内容,以后无论是谁请求任何地址,它打开的总是我们设定的地址,其他地址都打不开了!呵呵,用这个是不是有点烂哦?说者无意,听者有心,别乱用哦,我不是教你去整人的,给别人方便给自己方便哦!

比较法则----不同比较2

我们继续相同比较,这节我们用暗黑来比较,大家大都玩过暗黑吧?这里我们给大家一个卖物品的封包,注意单机版的不存在封包,要连机打或者上战网才有封包的!截取封包的过程如下:
首先启动程序:

11d26a3ebe15c83b70cf6c8c.jpg


然后启动WPE:

e1d7a61b964ff91f8618bf8e.jpg


选择游戏名称:game.exe

6bdea551df07871e367abe8e.jpg


开始接收封包:卖掉一个活力后得到的封包

6894ed19ae06377cdab4bd8e.jpg

卖掉一瓶血的封包如下!

这里难度稍微大一些,分析时要多加注意了
首先,我们注意,第二个封包和第一个封包有相同的地方,怎么看呢?
从第二个封包的第三行开始和第一个比较,是不是?
这个时候不要看WPE右边的分析了,全是错的!
如果要进一步分析,就要知道相关信息了,我们知道一个活力卖掉的价格是200,

200(10)=C8(10)
看到第一个里面的C8了吗?呵呵,明白了吧,继续分析就留给你了!如果你要进行相同比较,这里个出再卖一个活力的封包

7f43dc17a71b660fc93d6d95.jpg

090db2861e327e3867096e95.jpg

进位专家使用方法
editoreditoreditor
editor
editoreditoreditor

  
  
本软件是配合WPE使用的,因为很多WPE的十六进制很难读,如果可以直接查到十六进制数对应的文字,这样就非常方便了,因为16进制是我们所不熟悉的,如果换成熟悉的文字,我们研究封包将方便很多,当然,本软件的功能不仅限于此,在很多场合,遇到进制问题和AscII交织的问题是,使用本工具一定给你带来非常大的方便!下面的是使用方法,结合封包的16进制讲解!
首先是打开本软件,输入用户名和密码!
(编者注:自学的话,到网上找个破解版的吧)   
登陆后出现如下界面:

4bd6a57e49ac643e0cd7da9c.jpg


如果要查找某个进制下的数字对应的 文字,就可以选择查询AscII值对应字符,然后在输入查询框中输入数字,在选择进位值中选择您需要的进位值,通常分析封包是16进制,然后点确定,然后就可以看到结果了,如图!


  如果要查询某个字的AscII值,可以选择查询字符的AscII值,然后在输入框内输入要查询的字符,点确定后就可以得到结果


  如果要查询不同进制之间的转换,请点高级,然后就可以看到支持从2到16之间任何进制之间的转换界面,如下图:

68bbdf80e1140dd19123d99c.jpg



在输入查询中输入要查询的数字,在第二个空内输入现在的进制单位,然后在下一行输入要转换到的进制单位,然后点确定就可以得到结果了!

本工具使用非常简单,却非常实用,在经常接触到非10进制的环境时,使用本工具将带给你非常巨大的方便和快捷!

如果有什么不明白可以看看帮助,另外,还可以给我们来信询问,如果您有好的意见或者建议,欢迎您来信,我们会根据您的要求作相应修改!

黄金规则之结构规则
editoreditoreditor
editor
editoreditoreditor

由于各种原因,外挂总是很难直接读的,那么怎么办呢?前面我们说了比较法则,这个法则是非常有用的,但是还不够,如果我们多掌握几中方法,那么我们修改封包成功的可能性就要高很多,所以,一定要多学几中分析封包的方法,封包是有结构的,这个结构如同人体的骨骼,如果知道了骨骼的构造,对我们解剖人体是非常有用的,否则谁知道该从哪儿入手呢?那么我们就给大家讲一下封包的结构:
  一个TCP传输单元可以认为是一个封包,这个单元结构如下:源(就是封包从那里来)、目的端口(封包到那里去,源和目的端口各16位)、序号(可以确认排队)、确认号(确认到达目的地,不必重新请求发送)、头标长度(因为TCP头是可变的,它包含的可选的“选项字段”)、码位、窗口。
  但是不是每个封包都包含那么多的内容,可能只包含其中的某些项,这个就要根据情况而决定了,所以要经常分析封包,习惯了就好了,可以一目了然。
  这里给大家具体的一个封包,大家可以自己看看,大家也可以自己拦截一些封包来分析,当然,不是每个封包都是那么有典型意义,因此分析起来就要难多了!
封包如下:
Source Port (16) | Destination Port (16)
Sequence Number (32)
Acknowledgment Number (32)
Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)
Checksum (16) | Urgent Pointer (16)
Options (0 or more 32 bit words + padding)
DATA
...
这个是表准的封包的组成结构,这个结构不是每个封包都包含得有的,我们以下面这个封包解释给大家看看:
7f43dc17a722660fc93d6d8c.jpg
这个封包就非常简单了,没有指定发向那里,没有告诉发出的源,那么这个就是一般情况下的封包,因为在游戏里面,我们的电脑和服务器已经建立了稳定的连接,这就是说,封包在这样的稳定连接下可以省略很多内容,甚至只有关键内容,这个结构的掌握就全部建立在平时的多分析上面了,只要您分析多了,自然可以知道怎么分析了!

在上面的图片给出的封包里面:“S” 后面是发送的封包内容,怎么分析呢?按照一般的分析思路,首先是根据ASCII码表翻译出里面的文字信息,这里我们来分析一下这个封包到底是什么,看看这个简单的封包分析的全过程:请看下一节!

本教程的安排如下:首先是讲为什么会有封包,封包的结构是怎样的。
  然后介绍TCP/IP技术的相关内容,定位封包在网络传输中的层!
  然后介绍WPE的工作界面,以及各功能按扭的作用!

  
前面的内容属于了解阶段的内容,帮助您了解相关内容,对下面的学习会有帮助!但是您不需要深入认识,只要了解就够了!
  下面是进入实质性阶段,这阶段属于理解、运用阶段,要求您完全掌握
首先是讲封包的拦截,为了方便您学习,我们从最简单的数据入手Internet Explorer 的封包!
然后,我们进入游戏数据的认识和修改阶段,先没有直接进入网络游戏,因为网络游戏的封包是加密的,不容易认,我们从本地连机游戏入手,这里是从连机的暗黑入手,发送的数据都很容易辨认!
接下来就是真正的网络游戏的修改阶段,这里为帮助大家能尽快认识封包特别是加密封包的数据,我们特地提出了两条黄金准则:比较准则结构准则!熟练地运用这两条准则,您一定可以游刃有余地分析封包,修改游戏更加得心应手!希望您一定认真掌握这些规律!
为了帮助大家彻底掌握封包技术,我们在大家完全掌握了封包后,给大家举出了很多游戏修改的实例,供大家参考学习,这里主要举的例子是:石器、千年、传奇、金庸等常见游戏的修改的典型范例!以帮助大家彻底掌握WPE修改游戏的技术!
在掌握了修改游戏的基础上,我们更进一步:制作可以独立于WPE的外挂,可以不需要WPE而独立运行,这样的外挂即小又方便使用!
讲完制作独立外挂,其实本教程就可以结束了,但是,WPE1.3是win98下运行的,我们为了大家能制作出可以在win2000和winXP下运行的外挂,在最后介绍的是WPE pro0.7c制作外挂的方法!相信您通过本教程的学习,一定会受益匪浅!

封包初现
editoreditoreditor
editor
editoreditoreditor

  
 现在经过前面那么多的准备,终于可以走如正题了,希望您前面的准备充足,不要一进入正题就满脸雾水!
按照为了关照入门者,我们从最简单的封包开始,首先,我们选择我们经常使用的Internet Explorer研究,我们经常使用它上网浏览网页,对它再熟悉不过了,什么?你不知道什么是Internet Explorer?我倒,下面的这个东西就是了,看看吧!熟悉吧?

4feec10737a01bc87a894741.jpg


先启动这个IE,然后进入WPE选择这个程序,选择方法如下:

0cc220fae597868c9f514641.jpg


就是白色字那个了,我们选定它,作为我们研究的对象!然后是发送封包接收封包的问题了,为了从最简单的入手,我们先把网线拔了,什么?不明白网线是什么?那我无法说明了,你别问我,问旁边的人吧,一定有人知道的,反正就是你上网那根线,先把它拔下来,这样就没有封包返回,方便研究!下面看看,我们从最简单的入手,首先我们发送一个地址,就在IE中输入地址,然后按Enter,这里我们输入的地址是:http://www.ff.com结果如下

ed3ff3cd7fd363540eb34541.jpg

       
看到了吧,右边有封包的分析,对于简单的未加密的封包,WPE可以自动分析,下面我们输入地址:http://www.ee.com 结果如下:

b6c308954b21ff0d7af48042.jpg


好,我们下一章开始分析封包了,准备好了吗?

          

封包的组成
editoreditoreditor
editor
editoreditoreditor

一个封包,包含有如下元素,也就是组成部分吧!
1.需要传输的数据(主要的和最重要的部分就是这个,外挂修改的也是这部分)
2.序列号(每个封包必须有自己的序列号,以便到了接收端后可以按照序列号重新组装)
3.IP地址,一般都有这一部分,通过网络解析才知道封包从那里来,到那里去!
当然封包的内容不止这些,但是,我们了解这些就够了。
注意:在传输中,所有数据都是16位或者32位的,所以截获的封包看起来总是怪怪的!
面给一个封包的基本格式,给大家看看(下面是基本封包格式,如果您可以背下来他们的格式,这对您修改游戏是非常有用的!强烈建议您看一些关于封包格式的文章,您就可以很容易地把封包看清楚,很快知道哪个才是真正的数据):
Source Port (16) | Destination Port (16)
Sequence Number (32)
Acknowledgment Number (32)
Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16)
Checksum (16) | Urgent Pointer (16)
Options (0 or more 32 bit words + padding)
DATA
...

稍微注意以下,您可以看到,每行的长度都是32字节!
大家看到了吗?data就是数据,那是最关键的部分,我们使用WPE修改的就是那一部分!
关于封包,是网络方面的知识,要写出来,估计可以出一本书了,这里不再详细讲解,如果您要详细学习请您参考相关资料。

封包分析1

为了方便分析,我们把图片都放到一起大家看看!

ed3ff3cd7fd363540eb34541.jpg

上面发送的封包是http://www.ff.com
下面发送的封包内容是:http://www.ee.com

b6c308954b21ff0d7af48042.jpg


我们比较一下两个封包,可以发现,相同的部分很多,按我们的分析应该差别只应该在“ee”与"ff"的区别,因为发送的内容只有这点差别,但是上面的封包显示出来的却不是这样,为什么?
其实,他们确实是一样的,在IE的封包里面,01、02、03、04都代表点的意思,也就是代表:"."这个意思,那么你再分析就发现完全和我们预料的一样了,这里是IE发送的封包,没有加密的,您可以直接读出来的!但是这不是10进制,而是16进制,因此,我们必须把它翻译成为10进制,以方便我们阅读,怎么办?
别忘了,我在WPE下载页给出了一个Asic II工具,现在就用吧,
好,我们来翻译这个封包,前面的不管,我们只关心封包里面的数据:打开Asic II工具,输入"W",点查看,看到了什么?------“77”(十六进制),看到了吧,我们输入的有3个“W”,这里是不是有3个77啊?前面已经讲过,02代表点号,那么,接下来是不是也是我们预料的是“f”呢?我们继续用工具查一下看看,果然不出我们分析所料,真是f,不用多猜了,接下来的内容就是".com"怎么样?是不是很简单呢?下面我们把这个过程完整地给大家演示一遍!
首先,拔掉网线(这里是为了简单才拔的,其实不拔也可以,只是会出现返回封包,不容易辨认)打开WPE,然后,打开Internet Exproler,然后在WPE中选中我们要截取封包的Internet Exproler程序,然后点拦截封包,然后在Internet Exproler中输入一个简单的网址,按回车后,在WPE中开始拦截,看到发送了一个封包后,点停止,就看到我们需要的封包了,下面是图解过程:
1.打开WPE

f0f1219b7656a6b0c8eaf45d.jpg


2.打开Internet Exproler
4feec10737a01bc87a894741.jpg
3.打开在选择游戏中选择Internet Exproler程序,点两下
0cc220fae597868c9f514641.jpg
4.在Internet Exproler中输入http://www.ff.com,然后按回车

3195202a4631ed3d5243c15d.jpg


5.在WPE中点拦截

73a1164f6ee40a33afc3ab84.jpg


点三角形

edefd35c9155ae46faf2c05d.jpg


当收到封包后点红色的正方形,封包就出现了!
ed3ff3cd7fd363540eb34541.jpg
注意,图上的最后一副图的左上角有个蓝色的“S”,意思是:这个后面的封包是发送的,英文的单词是"sent"如果出现的是“R”,那么意思是它后面的封包是接受到的而不是发送的,区别如下图!

5247ac016eee0b06728da52e.jpg


ed3ff3cd7fd363540eb34541.jpg

封包分析2

经过前一章的讲解,相信大家对封包有了粗略的了解,这一章是要大家分析封包,其实封包的拦截不是很宽难,难就难在封包的分析上,从习惯上来说,大家都习惯辨认10进制的东西,对16进制,实在是不习惯,没关系,我们会让大家逐渐习惯的!如果大家愿意更好地掌握16进制,强烈建议大家手里拿一张Asic II码对照表,这样可以方便大家学习,不仅可以反查,而且可以顺查!方便多了!
前一节,我们把网线拔了,先在查上吧,难题要来了!准备好了吗,好,LET‘S GO!
先看下面的图片!

我们来分析一下上面的内容!
首先几点说明,这是对Internet Exproler进行的封包操作,请求的地址暂时不说,您可以分析出来的!下面是分析说明!

首先,本地发送请求到服务器!发送内容是“21”,注意:您一定很容易地认为发送的是“21”,其实,数字也好,字母也好,一定要注意,全都是16进制的,所以,这个“21”不是我们平常的21,而是16进制的21,那我们来算一下21等于多少(计算21转换为10进制等于多少)?21(16位)=2 x 16 + 1 = 33 (10进制),关于进制计算,我们专门的章节有说明的
再查ASCII表,看看33对应的是什么字符?查到了吗?是“!”,呵呵,WPE不是已经在右边给我们显示了吗?不过我们要习惯分析哦,到游戏里面可就没那么多的方便了!
那么发送一个!是什么意思呢?其实这个是网络连接的问题了,不必细究,要详细了解的请查看关于网络连接3次握手的相关内容!这里不做讲解!这个与游戏修改无关!
第3行47是什么意思呢?算一下:47(16)=4 x 16 + 7 = 71(10)括号内16代表16进制,10代表10进制,那么71代表什么?查表ASCII结果:71对应字母“G”
45呢?45(16)=4 X 16 +5 =69(10),查表出来的结果是:E
请你不要看右边的分析,我知道右边有现成的结果,但是你要自己分析,不然你拿着游戏就无从下手了!简单的分析就是这样了,是不是很轻松?好,再继续分析几个!
第15行,的3A什么意思?
3A(16)=3 X 16 + 10 = 58(10)
查表得,58对应“ :”
倒数第2行B7什么意思?
B7(16)=11
X 16 + 7 =183(10)
查表得到183对应:特殊字符,这里我无法帮你打出这个字符,抱歉!
注意,这里WPE也翻译不出来对应的字符了,看到了吗?WPE只翻译了最后两个,如果我们自己需要怎么办?当然是自己分析了,所以说不要看WPE帮你的分析,自己分析很重要!

ba1ce7d3142710d9a9ec9ab3.jpg

黄金法则----比较法则

前面我们已经分析了简单的封包,为了我们以后能分析复杂的封包,我们这里给出分析封包的第一条黄金法则------比较法则!
所谓比较法则就是通过比较,得到 我们需要的东西,封包往往由于于我们平常的习惯有区别,我们难于辨认,只有电脑才喜欢,而且,封包有自己结构,不是一个封包的所有内容都是有用的,其中很多是我们所不需要的,我们不必去详细了解每一部分到底是什么意思,那么我们怎么得到其中的包含的关键信息的部分呢?那就是……比较,对,是比较,方便又准确的方法

那么怎么比较呢?请看下面的分析!
1.相同比较
2.不同比较

所谓相同比较,这是游戏中经常用到的!因为游戏封包都是加密的,对同一个内容的封包也是不同的,我们做同一个操作,结果会有不同的封包,这是相同比较,例如,在游戏中,我们卖掉一个小血瓶,看看封包是什么?千万不要以为以后卖血瓶永远是这个封包了,对所有封包都不要有这个思想,否则,祸患无穷!我们再卖一个小血瓶,再看看封包内容,比较一下这两次封包相同的地方在那里,不同的地方在那里?这个很重要哦! 如果完全相同,那我们再卖一个血瓶看看,如果还相同,再卖一个看看,还相同?如果真是这样,10次都是这个结果,我们可以初步断定,血瓶的封包是不变的,我们可以利用了!怎么利用?不用急,在后面说明,现在还早!
如果第一次和第二次得到的封包不完全一样怎么办?比较一下,找到不同的地方在那里,这些地方的区别分别是什么意思,关于不同地方是什么意思的分析,我们不再分析了前面已经分析过了!
如果再卖掉一个血瓶,第三次和第二次也不一样怎么办?老办法,分析相同的地方和不同的地方啊!

分析下面两个封包:

ed3ff3cd7fd363540eb34541.jpg

b6c308954b21ff0d7af48042.jpg
看看,相似的地方很多吧?呵呵,不同的地方并不多!这样对照分析是不是很简单呢?

比较法则----相同比较

前面说了相同比较,这节我们详细介绍一下:
比较下面两个封包:
封包一:

游戏名称:快打旋风线上版?#123
发一个小火球:你可能得到如下封包:

090db2861e0b7e3867096e8c.jpg


封包2:

7f43dc17a722660fc93d6d8c.jpg


区别是不是很小,其中接收部分是完全一样的,但是发送部分有所区别,这个区别是坐标信息!
这个封包来源:星际争霸游戏中连机对战,时,一个士兵移动一步和再移动一步产生的封包,动作是完全相同的,所以,不应该有太大区别!
下面给出一个在线游戏的封包对比分析:

SEND-> 0000 0A 09 C1 10 00 00 FF 52 44

再发一个小火球,得到的封包可能就变成这样了!


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

为什么两次不同呢?呵呵,这是游戏了,封包是加密的,不是轻易就可以看出来的了!而且,这里的0A可能有它自己的含义了,不是可以查ASCII表可以查到的了,你需要猜它是什么意思了!我们暂时不分析,到分析游戏封包时再分析,这里主要讲对比!

从封包上看,我们两次动作是一样的,因此,得到的封包也还是大致一样的,很相似,区别只在最后几个上,有这样的分析,实际对我们制作滤镜是很有帮助的!如果我们再收集一点其它信息,实际上我们就可以破译这个封包了,如果我们知道这个小火球打到别人身上,伤害值是16,那么我们就可以知道,

16(10)=10(10)

不会看不明白等号了吧?十进制的16等于16进制的10,那么看看 那里有10呢,呵呵,两个封包都有哦,这个就是火球的封包,其中10表示伤害值,如果我们制作一个滤镜,但检测到这个相似的风暴,就自动修改成FF会怎么样呢?

FF(16)=15 X16 +15=255(10)

明白了吗?你的小火球攻击将达到255的伤害,是原来的多少倍哦?

比较是很简单的,有比较就容易辨认,请您自己多分析一些实际例子,相信您很快就会学到这种方法的!这里不多举例子了!

比较法则----不同比较

前面说了相同比较,这节我们详细介绍一下不同比较:
相同比较是为了在相同的封包中找不同点,以便于找到封包的本质内容,那么不同比较呢,就是相反的,是在不同封包中找相同点,以便找到封包的核心内容!
举个离子:如果你想知道卖东西的封包有什么特点,那么你只卖血瓶是不够的,你该卖掉其他东西,比如卖魔法药,卖了小血瓶,买中型血瓶,然后卖大型血瓶,共同点是都是卖,不同点是卖的东西不同,我们可以利用他们的封包中不同中的相同来找到卖东西的封包的共同点,从而为我们所用!
援用前面的例子
我们利用IE(什么,你又不知道IE是什么了?我到,就是Internet Exproler,前面早说过了),先请求地址http://www.ff.com,得到的封包如下:



ed3ff3cd7fd363540eb34541.jpg


然后请求地址:http://www.ee.com得到如下封包:

b6c308954b21ff0d7af48042.jpg
我们有理由详细:请求地址的第一步操作都是这样的了,发送的封包都应该是这样的了!区别都只在于WWW和COM之间的部分有区别,那么我们可以对以后所有请求地址的操作进行控制,例如:我们可以控制其中关键代码,就是把其中的“ff”换成我们希望的内容,以后无论是谁请求任何地址,它打开的总是我们设定的地址,其他地址都打不开了!呵呵,用这个是不是有点烂哦?说者无意,听者有心,别乱用哦,我不是教你去整人的,给别人方便给自己方便哦!

比较法则----不同比较2

我们继续相同比较,这节我们用暗黑来比较,大家大都玩过暗黑吧?这里我们给大家一个卖物品的封包,注意单机版的不存在封包,要连机打或者上战网才有封包的!截取封包的过程如下:
首先启动程序:

11d26a3ebe15c83b70cf6c8c.jpg


然后启动WPE:

e1d7a61b964ff91f8618bf8e.jpg


选择游戏名称:game.exe

6bdea551df07871e367abe8e.jpg


开始接收封包:卖掉一个活力后得到的封包

6894ed19ae06377cdab4bd8e.jpg

卖掉一瓶血的封包如下!

这里难度稍微大一些,分析时要多加注意了
首先,我们注意,第二个封包和第一个封包有相同的地方,怎么看呢?
从第二个封包的第三行开始和第一个比较,是不是?
这个时候不要看WPE右边的分析了,全是错的!
如果要进一步分析,就要知道相关信息了,我们知道一个活力卖掉的价格是200,

200(10)=C8(10)
看到第一个里面的C8了吗?呵呵,明白了吧,继续分析就留给你了!如果你要进行相同比较,这里个出再卖一个活力的封包

wpe封包的使用详细教程 现在我们开始!首先,你要知道游戏中储存数据的几种格式,这几种格式是:字节(BYTE)、字(WORD)和双字(DOUBLE WORD),或者说是8位、16位和32位储存方式。字节也就是8位方式能储存0~255的数字;字或说是16位储存方式能储存0~65535的数;双字即32位方式能储存0~4294967295的数。   为何要了解这些知识呢?在游戏中各种参数的最大值是不同的,有些可能100左右就够了,比如,金庸群侠传中的角色的等级、随机遇敌个数等等。而有些却需要大于255甚至大于65535,象金庸群侠传中角色的金钱值可达到数百万。所以,在游戏中各种不同的数据的类型是不一样的。在我们修改游戏时需要寻找准备修改的数据的封包,在这种时候,正确判断数据的类型是迅速找到正确地址的重要条件。   在计算机中数据以字节为基本的储存单位,每个字节被赋予一个编号,以确定各自的位置。这个编号我们就称为地址。 在需要用到字或双字时,计算机用连续的两个字节来组成一个字,连续的两个字组成一个双字。而一个字或双字的地址就是它们的低位字节的地址。 现在我们常用的Windows 9x操作系统中,地址是用一个32位的进制数表示的。而在平时我们用到内存地址时,总是用一个8位的16进制数来表示它。 进制和十六进制又是怎样一回事呢?   简单说来,进制数就是一种只有0和1两个数码,每满2则进一位的计数进位法。同样,16进制就是每满十六就进一位的计数进位法。16进制有0--F十六个数字,它为表示十到十五的数字采用了A、B、C、D、E、F六个数字,它们和十进制的对应关系是:A对应于10,B对应于11,C对应于12,D对应于13,E对应于14,F对应于15。而且,16进制数和进制数间有一个简单的对应关系,那就是;四位进制数相当于一位16进制数。比如,一个四位的进制数1111就相当于16进制的F,1010就相当于A。 了解这些基础知识对修改游戏有着很大的帮助,下面我就要谈到这个问题。由于在计算机中数据是以进制的方式储存的,同时16进制数和进制间的转换关系十分简单,所以大部分的修改工具在显示计算机中的数据时会显示16进制的代码,而且在你修改时也需要输入16进制的数字。你清楚了吧?   在游戏中看到的数据可都是十进制的,在要寻找并修改参数的值时,可以使用Windows提供的计算器来进行十进制和16进制的换算,我们可以在开始菜单里的程序组中的附件中找到它。   现在要了解的知识也差不多了!不过,有个问题在游戏修改中是需要注意的。在计算机中数据的储存方式一般是低位数储存在低位字节,高位数储存在高位字节。比如,十进制数41715转换为16进制的数为A2F3,但在计算机中这个数被存为F3A2。 看了以上内容大家对数据的存贮和数据的对应关系都了解了吗? 好了,接下来我们要告诉大家在游戏中,封包到底是怎么一回事了,来!大家把袖口卷起来,让我们来干活吧! :什么是封包? 怎么截获一个游戏封包? 怎么去检查游戏服务器的ip地址和端口号? Internet用户使用的各种信息服务,其通讯的信息最终均可以归结为以IP包为单位的信息传送,IP包除了包括要传送的数据信息外,还包含有信息要发送到的目的IP地址、信息发送的源IP地址、以及一些相关的控制信息。当一台路由器收到一个IP数据包时,它将根据数据包中的目的IP地址项查找路由表,根据查找的结果将此IP数据包送往对应端口。下一台IP路由器收到此数据包后继续转发,直至发到目的地。路由器之间可以通过路由协议来进行路由信息的交换,从而更新路由表。 那么我们所关心的内容只是IP包中的数据信息,我们可以使用许多监听网络的工具来截获客户端与服务器之间的交换数据,下面就向你介绍其中的一种工具:WPEWPE使用方法: 执行WPE会有下列几项功能可选择: NETSTAT命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。或者你可以使用木马客星等工具来查看网络连接。工具是很多的,看你喜欢用哪一种了。 NETSTAT命令的一般格式为: NETSTAT [选项] 命令中各选项的含义如下: -a 显示所有socket,包括正在监听的。 -c 每隔1秒就重新显示一遍,直到用户中断它。 -i 显示所有网络接口的信息。 -n 以网络IP地址代替名称,显示出网络连接情形。 -r 显示核心路由表,格式同"route -e"。 -t 显示TCP协议的连接情况。 -u 显示UDP协议的连接情况。 -v 显示正在进行的工作。 三:怎么来分析我们截获的封包? 首先我们将WPE截获的封包保存为文本文件,然后打开它,这时会看到如下的数据(这里我们以金庸群侠传里PK店小客户端发送的数据为例来讲解): 第一个文件: 复制内容到剪贴板 代码:SEND-> 0000 E6 56 0D 22 7E 6B E4 17 13 13 12 13 12 13 67 1B SEND-> 0010 17 12 DD 34 12 12 12 12 17 12 0E 12 12 12 9B SEND-> 0000 E6 56 1E F1 29 06 17 12 3B 0E 17 1A SEND-> 0000 E6 56 1B C0 68 12 12 12 5A SEND-> 0000 E6 56 02 C8 13 C9 7E 6B E4 17 10 35 27 13 12 12 SEND-> 0000 E6 56 17 C9 12 第个文件: 复制内容到剪贴板 代码:SEND-> 0000 83 33 68 47 1B 0E 81 72 76 76 77 76 77 76 02 7E SEND-> 0010 72 77 07 1C 77 77 77 77 72 77 72 77 77 77 6D SEND-> 0000 83 33 7B 94 4C 63 72 77 5E 6B 72 F3 SEND-> 0000 83 33 7E A5 21 77 77 77 3F SEND-> 0000 83 33 67 AD 76 CF 1B 0E 81 72 75 50 42 76 77 77 SEND-> 0000 83 33 72 AC 77 我们发现两次PK店小的数据格式一样,但是内容却不相同,我们是PK的同一个NPC,为什么会不同呢? 原来金庸群侠传的封包是经过了加密运算才在网路上传输的,那么我们面临的问题就是如何将密文解密成明文再分析了。 因为一般的数据包加密都是异或运算,所以这里先讲一下什么是异或。 简单的说,异或就是"相同为0,不同为1"(这是针对进制按位来讲的),举个例子,0001和0010异或,我们按位对比,得到异或结果是0011,计算的方法是:0001的第4位为0,0010的第4位为0,它们相同,则异或结果的第4位按照"相同为0,不同为1"的原则得到0,0001的第3位为0,0010的第3位为0,则异或结果的第3位得到0,0001的第2位为0,0010的第2位为1,则异或结果的第2位得到1,0001的第1位为1,0010的第1位为0,则异或结果的第1位得到1,组合起来就是0011。异或运算今后会遇到很多,大家可以先熟悉熟悉,熟练了对分析很有帮助的。 下面我们继续看看上面的两个文件,按照常理,数据包的数据不会全部都有值的,游戏开发时会预留一些字节空间来便于日后的扩充,也就是说数据包里会存在一些"00"的字节,观察上面的文件,我们会发现文件一里很多"12",文件里很多"77",那么这是不是代表我们说的"00"呢?推理到这里,我们就开始行动吧! 我们把文件一与"12"异或,文件与"77"异或,当然用手算很费事,我们使用"M2M 1.0 加密封包分析工具"来计算就方便多了。得到下面的结果: 第一个文件: 复制内容到剪贴板 代码:1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 SEND-> 0010 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89 2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 08 3 SEND-> 0000 F4 44 09 D2 7A 00 00 00 48 4 SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00 5 SEND-> 0000 F4 44 05 DB 00第个文件: 复制内容到剪贴板 代码:1 SEND-> 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 SEND-> 0010 05 00 70 6B 00 00 00 00 05 00 05 00 00 00 1A 2 SEND-> 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 84 3 SEND-> 0000 F4 44 09 D2 56 00 00 00 48 4 SEND-> 0000 F4 44 10 DA 01 B8 6C 79 F6 05 02 27 35 01 00 00 5 SEND-> 0000 F4 44 05 DB 00 哈,这一下两个文件大部分都一样啦,说明我们的推理是正确的,上面就是我们需要的明文! 接下来就是搞清楚一些关键的字节所代表的含义,这就需要截获大量的数据来分析。 首先我们会发现每个数据包都是"F4 44"开头,第3个字节是变化的,但是变化很有规律。我们来看看各个包的长度,发现什么没有?对了,第3个字节就是包的长度! 通过截获大量的数据包,我们判断第4个字节代表指令,也就是说客户端告诉服务器进行的是什么操作。例如向服务器请求战斗指令为"30",战斗中移动指令为"D4"等。 接下来,我们就需要分析一下上面第一个包"F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 75 09 05 00 CF 26 00 00 00 00 05 00 1C 00 00 00 89",在这个包里包含什么信息呢?应该有通知服务器你PK的哪个NPC吧,我们就先来找找这个店小的代码在什么地方。 我们再PK一个小喽罗(就是大理客栈外的那个咯): 复制内容到剪贴板 代码:SEND-> 0000 F4 44 1F 30 D4 75 F6 05 01 01 00 01 00 01 75 09 SEND-> 0010 05 00 8A 19 00 00 00 00 11 00 02 00 00 00 C0 我们根据常理分析,游戏里的NPC种类虽然不会超过65535(FFFF),但开发时不会把自己限制在字的范围,那样不利于游戏的扩充,所以我们在双字里看看。通过"店小"和"小喽罗"两个包的对比,我们把目标放在"6C 79 F6 05"和"CF 26 00 00"上。(对比一下很容易的,但你不能太迟钝咯,呵呵)我们再看看后面的包,在后面的包里应该还会出现NPC的代码,比如移动的包,游戏允许观战,服务器必然需要知道NPC的移动坐标,再广播给观战的其他玩家。在后面第4个包"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00"里我们又看到了"6C 79 F6 05",初步断定店小的代码就是它了! (这分析里边包含了很多工作的,大家可以用WPE截下数据来自己分析分析) 第一个包的分析暂时就到这里(里面还有的信息我们暂时不需要完全清楚了) 我们看看第4个包"SEND-> 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00",再截获PK黄狗的包,(狗会出来2只哦)看看包的格式: 复制内容到剪贴板 代码:SEND-> 0000 F4 44 1A DA 02 0B 4B 7D F6 05 02 27 35 01 00 00 SEND-> 0010 EB 03 F8 05 02 27 36 01 00 00 根据上面的分析,黄狗的代码为"4B 7D F6 05"(100040011),不过两只黄狗服务器怎样分辨呢?看看"EB 03 F8 05"(100140011),是上一个代码加上100000,呵呵,这样服务器就可以认出两只黄狗了。我们再通过野外遇敌截获的数据包来证实,果然如此。 那么,这个包的格式应该比较清楚了:第3个字节为包的长度,"DA"为指令,第5个字节为NPC个数,从第7个字节开始的10个字节代表一个NPC的信息,多一个NPC就多10个字节来表示。 大家如果玩过网金,必然知道随机遇敌有时会出现增援,我们就利用游戏这个增援来让每次战斗都会出现增援的NPC吧。 通过在战斗中出现增援截获的数据包,我们会发现服务器端发送了这样一个包: 复制内容到剪贴板 代码:F4 44 12 E9 EB 03 F8 05 02 00 00 03 00 00 00 00 00 00 第5-第8个字节为增援NPC的代码(这里我们就简单的以黄狗的代码来举例)。 那么,我们就利用单机代理技术来同时欺骗客户端和服务器吧! 好了,呼叫NPC的工作到这里算是完成了一小半,接下来的事情,怎样修改封包发送封包,我们下节继续讲解吧。 四:怎么冒充"客户端"向"服务器"发我们需要的封包? 这里我们需要使用一个工具,它位于客户端和服务器端之间,它的工作就是进行数据包的接收和转发,这个工具我们称为代理。 如果代理的工作单纯就是接收和转发的话,这就毫无意义了,但是请注意:所有的数据包都要通过它来传输,这里的意义就重大了。我们可以分析接收到的数据包,或者直接转发,或者修改后转发,或者压住不转发,甚至伪造我们需要的封包发送。 下面我们继续讲怎样来同时欺骗服务器和客户端,也就是修改封包和伪造封包。 通过我们上节的分析,我们已经知道了打多个NPC的封包格式,那么我们就动手吧! 首先我们要查找客户端发送的包,找到战斗的特征,就是请求战斗的第1个包,我们找"F4 44 1F 30"这个特征,这是不会改变的,当然是要解密后来查找哦。 找到后,表示客户端在向服务器请求战斗,我们不动这个包,转发。 继续向下查找,这时需要查找的特征码不太好办,我们先查找"DA",这是客户端发送NPC信息的数据包的指令,那么可能其他包也有"DA",没关系,我们看前3个字节有没有"F4 44"就行了。找到后,我们的工作就开始了! 我们确定要打的NPC数量。这个数量不能很大,原因在于网金的封包长度用一个字节表示,那么一个包可以有255个字节,我们上面分析过,增加一个NPC要增加10个字节,所以大家算算就知道,打20个NPC比较合适。 然后我们要把客户端原来的NPC代码分析计算出来,因为增加的NPC代码要加上100000哦。再把我们增加的NPC代码计算出来,并且组合成新的封包,注意代表包长度的字节要修改啊,然后转发到服务器,这一步在编写程序的时候要注意算法,不要造成较大延迟。 上面我们欺骗服务器端完成了,欺骗客户端就简单了,^-^ 发送了上面的封包后,我们根据新增NPC代码构造封包马上发给客户端,格式就是"F4 44 12 E9 NPC代码 02 00 00 03 00 00 00 00 00 00",把每个新增的NPC都构造这样一个包,按顺序连在一起发送给客户端,客户端也就被我们骗过了,很简单吧。 以后战斗中其他的事我们就不管了,尽情地开打吧,呵呵。 本人亲身试过,特别好用,绝对无毒,好用请好评!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值