[转]WPE详细教程二

时间:2024-02-20 21:00:03
本教程的内容安排

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

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

封包初现

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


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


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

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


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

封包的组成

 

一个封包,包含有如下元素,也就是组成部分吧!
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

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


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


我们比较一下两个封包,可以发现,相同的部分很多,按我们的分析应该差别只应该在“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


2.打开Internet Exproler

3.打开在选择游戏中选择Internet Exproler程序,点两下

4.在Internet Exproler中输入http://www.ff.com,然后按回车


5.在WPE中点拦截


点三角形


当收到封包后点红色的正方形,封包就出现了!

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

 

 

 

封包分析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帮你的分析,自己分析很重要!

 

 

 

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

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

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

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

分析下面两个封包:


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

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

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

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


封包2:


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

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,得到的封包如下:




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


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

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

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


然后启动WPE:


选择游戏名称:game.exe


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

卖掉一瓶血的封包如下!

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

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

 

 

进位专家使用方法

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


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


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


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



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

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

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

黄金规则之结构规则

由于各种原因,外挂总是很难直接读的,那么怎么办呢?前面我们说了比较法则,这个法则是非常有用的,但是还不够,如果我们多掌握几中方法,那么我们修改封包成功的可能性就要高很多,所以,一定要多学几中分析封包的方法,封包是有结构的,这个结构如同人体的骨骼,如果知道了骨骼的构造,对我们解剖人体是非常有用的,否则谁知道该从哪儿入手呢?那么我们就给大家讲一下封包的结构:
  一个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
...
这个是表准的封包的组成结构
,这个结构不是每个封包都包含得有的,我们以下面这个封包解释给大家看看:

这个封包就非常简单了,没有指定发向那里,没有告诉发出的源,那么这个就是一般情况下的封包,因为在游戏里面,我们的电脑和服务器已经建立了稳定的连接,这就是说,封包在这样的稳定连接下可以省略很多内容,甚至只有关键内容,这个结构的掌握就全部建立在平时的多分析上面了,只要您分析多了,自然可以知道怎么分析了!

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