虫虫教学

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5438|回复: 57

WPE修改基础第三课:封包的基本知识

[复制链接]

4449

主题

4659

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
41710

最佳新人发帖达人推广达人热心会员突出贡献优秀讲师

发表于 2021-10-5 15:49:21 | 显示全部楼层 |阅读模式
                WPE修改基础第三课:封包的基本知识

1. 什么是封包?

    封包就是网络之间的信息传送是以封装打包的形式进行传递的,我们把这些传递的信息统称为封包。
     以游戏为例:大家都知道,客户端和服务器之间都要进行数据的传输。
     从游戏中发给服务器的信息我们称之为发送包,服务器发给游戏的信息我们称之为接收包。
   
      那么我们如何去获取这些信息呢?  我们用一个工具WPE就可以拦截到游戏和服务器之间的传输信息。在下一节课,我们将会对这个工具给同学们做一个全面的介绍。


       我们了解到什么是封包以后,我们再来了解一下封包的组成。
   
   首先我们来看一下,我们有WPE 在游戏中截取的一段封包,看看它长得是什么样子的。


              00 00 00 11 19 5D 00 00 DB 44 00 00  AB 06 00 00 00 01
     
    做为一个新人,一看到这些代码肯定发懵 ,这和我们日常生活中的数字好象不太一样呀,那新人应从那方面去对它进行学习呢?

大家不要急,只要按到我们的教程去学习,到时肯定就不会害怕这些代码啦!


          这些两个两个放到一起的代码,是十六进制代码,我们日常生活用到的是十进制代码,游戏中所有的数据表示的也是十进制。
     所以想要学习封包,就一定要懂什么是十六进制,那我们先来学习一下什么是进制?再来了解为什么网络上的封包会成为这个样子的。


     2 . 什么是进制?


          为了把少量的字符代替我们日常生活中所有的数量,我们把这些由少量字符组成的进位,称为进制。


        一进制: 只有一个字符。
                      打个比方:在原古时期,人们不识数,打到了猎物,就用蝇子打个结,这个结就表示一个数字。
        二进制:只有两个字符。
                     打个比方: 0 和 1 表示二个进制的符号,到了第三个数字时,他们就要进位,所以叫二进制。
                     首先是 0 然后是 1 再向后没有字符了,这时我们就要进位。也就是说,二进制就是两个字符后要进位。
                     进位后  10  11  再向后又没有字符了,这时又要进位 100 101 110 111 再向后又没有表示的字符了,再进位
                     1000  1001 1010 1011 1100 1101 1110 1111 ....... 这样一直表示下去。
        十进制:只有十个字符。
                      打个比方,0 1 2 3 4 5 6 7 8 9 这里有十个字符,到第十一个字符时,没有字符表示了,就只能进位 10 11 12 13 14 15 16 17 18 19
                      到这里又没有字符表示了,又要进位到 20......  这就是我们是常生活的十进制。
         十六进制:只有十六个字符。   
                         这十六个字符是我们在十进制的基础上加上了 A B C D E F 这六个字符,组成了十六进制。
                      打个比方:0 1 2 3 4 5 6 7 8 9 A B C D E F  这里有十六个字符,到第十七个字符没有表示的了,我们就只能进位 10 11 12 13 14 15                        16 17 18 19  1A 1B 1C 1D 1E 1F 到了这里又没有表示的字符啦,我们再进位20 ......
                       也就是说十六进制的 10 是我们十进制的 16 ,对应十六进制和十进制的转换,我们用计算机计算就行,不用去手动推算。
                      打个比方:我们在游戏中看到一个数值  657892   那么换成十六进制 就是 A09E4.  而我们的封包是两个十六进制代码在一起的,
                       那么它在封包里的代码就是 0A 09 E4


             从以上的讲解可以看出来,只要是几进制,就说是它有几个字符,到了字符全部结束的后,它就要进位,这就是进制。


      3. 为什么游戏里的封包要用十六进制的?
          因为程序员发现,一个十六进制和四个二进制有对应的关系。而计算机是用二进制的代码表示的,所以我们的程序用到了都是十六进制的。

     4.为什么计算机要用到二进制的?
           那是因为我们的计算机,它不认识任何符号,它只能识别 高脉冲,和脉冲。
           程序员为了编程方便,把脉冲表示为“0” 把高脉冲表示为“1”
          那么我们便这样认为,计算机只能用二进制来表示所有的信息。
          也就是说网络上所有的信息,图片,声音都用二进制来表示。但是对程序员来说,如果在编程过程中,在一大堆的0和1中,要去找一个错误          的代码,是一件多么可怕的事情,那有什么办法能减轻程序员的工作量呢?
        后来程序员们发现,一个十六进制的代码和四个二进制代码,它们有对应的关系。而最早我们计算机的内存,寄存器都是以八位的二进制来存          贮数据的,这样的话,我们的编程就变得简单了。
            我们来看下,二进制和十六进制有什么样的对应关系,让我们的程序员为了方便,不用我们常用的十进制编程,而用我们不熟悉的十六进制       来表示我们的数据。
          打个比方:  我们的寄存器里放了这几个二进制
        8位寄存器   10110010       那我们四个分成一组 1011   0010   得到的十六进制   B  2   我们把它们放到一起,还是B2
       16位寄存器  1101011011110100     我们把四个四个分成组   1101  0110 1111 0100 得到 D  6  F 4     我们把它们放到一起,得到D6F4                       
             也就是说,只要四个二进制就能代表一个十六进制,那我们的八位寄存器里一次就能放两个十六进制,所以我们的封包就是这样的
      两个十六进制在一起,表示它们在一个寄存器或内存里。随着计算机的不断进步,八位寄存器己不能满足人们的需求,后面就进步成16位的啦,就是把两个寄存器放到一起当一个寄存器用,再到后面,又进步了,变成32位,就是把四个寄存器放到一起当一个寄存器用,现在变成 64位了,就是把 八个寄存器放到一起用,
      那这样的话,我们的封包代码里,我们就首先要知道,我们的封包表示的数据代码是用多少字节?
  
      5.那什么是字节?
    就是两个十六进制代码放一起的,我们称为一个字节 如:B2   那两个字节,就是 D6 F4  记得中间要空出来,因为他们两个十六进制是在一个地方的,所以不能乱。  四个字节,如我们游戏中用四个字节表示数量1 它的表示方法: 00 00 00 01   如果游戏中,我们用二个字节来表示 就是:
   00 01  。那可能有同学会问,我怎么知道,我的游戏中的代码,程序员是用几个字节表示的呢?
    那就要去截包进行比对了。
   在这里要说明的是:我们研究封包,一定不要拿一个封包去分析,而是要通过多个包一起分析,才能理解我们所截到封包的含义。

0

主题

5981

帖子

2万

积分

超级版主

Rank: 8Rank: 8

积分
24833

最佳新人活跃会员热心会员突出贡献纪念勋章

发表于 2021-10-9 20:12:37 | 显示全部楼层
前来学习!
回复

使用道具 举报

0

主题

5981

帖子

2万

积分

超级版主

Rank: 8Rank: 8

积分
24833

最佳新人活跃会员热心会员突出贡献纪念勋章

发表于 2021-10-9 20:14:14 | 显示全部楼层
一起学习,共同进步!
回复

使用道具 举报

0

主题

5981

帖子

2万

积分

超级版主

Rank: 8Rank: 8

积分
24833

最佳新人活跃会员热心会员突出贡献纪念勋章

发表于 2021-10-9 20:14:47 | 显示全部楼层
静姐辛苦了!
回复

使用道具 举报

2

主题

2035

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10935

最佳新人推广达人突出贡献

发表于 2021-10-9 20:25:46 | 显示全部楼层
一起学习,共同进步!
回复

使用道具 举报

2

主题

2035

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10935

最佳新人推广达人突出贡献

发表于 2021-10-9 20:25:54 | 显示全部楼层
静姐辛苦了!
回复

使用道具 举报

0

主题

644

帖子

799

积分

版主

Rank: 7Rank: 7Rank: 7

积分
799
发表于 2021-10-12 14:40:42 | 显示全部楼层
好好学习!!!
回复

使用道具 举报

0

主题

644

帖子

799

积分

版主

Rank: 7Rank: 7Rank: 7

积分
799
发表于 2021-10-12 14:40:46 | 显示全部楼层
老师辛苦了
回复

使用道具 举报

0

主题

1975

帖子

2830

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2830
QQ
发表于 2021-10-12 23:12:47 来自手机 | 显示全部楼层
讲的非常详细,赞
回复

使用道具 举报

3

主题

1457

帖子

8203

积分

钻石会员

Rank: 7Rank: 7Rank: 7

积分
8203
发表于 2021-10-13 09:27:25 来自手机 | 显示全部楼层
一起加油,好好学习,虫虫越来越好
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

QQ|Archiver|手机版|小黑屋|虫虫教学--虫虫联盟官网

GMT+8, 2025-4-28 21:57 , Processed in 0.096399 second(s), 44 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表