马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
WPE修改基础第三课:封包的基本知识
前面给同学们介绍了WPE的作用,和WPE加载游戏的进程,接下来我们就要去游戏中截取封包了,但是大家对封包还是有个模糊的认识。
我们用WPE截取的一串串字母,用句不好听的话来说,就是它认识我,我不认识它。那么看到这些数字,我们应该如何去学习呢?
在学习封包之前,我们要对计算器的知识有一点点的了解,这样更方便我们学习。大家都知道,我们的计算机是用电来进行工作的,如果没电了,计算机也就不工作了,所以我的计算机,它只认识电,那么程序员就利用这个原理,把电分成强电平和弱电平,也就是用“0”来表示弱电平 “1”表示强电平,那么我们通过,强强弱弱、强弱强弱、弱弱强强就可以让计算机为我们服务,所以我们在网上看到的电影,音乐,文字,图片,都是通过程序员用无数的1和和0编写面来的。我们把 0 和 1 定为二进制 所以说二进制是计算机最底层的语言。
但是用二进制来编写程序,太累了,如果在几千万个数字里出现一个差错,程序员要去检查出来,就会非常的困难,这时,程序员们发现,一个十六进制正好就是四个进制 它们有一一对应的关系,这个发现,让程序员编程,检查变得轻松起来,这样十六进制就成了封包的表达方式。
同学们有空可以用计算器去测试一下 打个比方1010十六进制是 A1100十六进制是C 当我们把这两个二进制合并以后10101100你再计算,显示的就是 AC 如果你这样合并11001010这样的十六进制就是 CA
那么十六进制和十进制它们有什么关系呢?
我们日常生活都是用的十进制,我们的封包用的是十六进制,他们有什么区别呢?
十六进制就是在十进制 0 1 2 3 4 5 6 7 8 9 的基础上加上 A B C D E F 这六个字母 它们之间的转换,你只要用计算器转换便可!
在这里还要给大家补充一个计算机的常识,我们计算机的存贮器是8位的,所以每次存贮的都是 8个二进制的代码,四个二进制 表示一个十六进制,所以8位就正好是两个十六进制,所以我们看到的封包,都是两个十六进制在一起,然后空开,再两个十六进制在一起 这样的形态。
如 0A 00 00 01 AB AC 00 00 D5 89 00 00 00 01
看到这个大家就知道啦,所谓的封包,就是在计算机8位存贮器中存放的十六个二进制的代码,也就是两个十六进制的代码。
那么这些代码表示了什么意思呢?很多新人都有这个提问?
在这里我要和大家说的是,我们没办法知道它表示任何意思。不同的游戏它表示的代码都不一样。那么我们如何去分析它呢?
我们想要对封包进行修改,肯定要懂得分析,不然去改那个代码都不知道是吧!那么下节课,我们就教大家封包的分析,在分析封包之前,我们要对封包的字节做一个了解!
什么是字节?程序员把一个存贮器存放的数据定为一个字节,也就是两个十六进制代码表示一个字节,如上面的封包,0A 就是一个字节,
上面的那个封包,总共有 14个字节 。那么我们为什么要了解字节呢?
因为字节,是程序员存放数据大小的设计。
打个比方,一个游戏,我们的人级等级,如果程序员设计它最高是 200级,那么定多少字节合适呢?
我们先了解一下,一个字节的十进制有多少? 我们用计算器算下,有256个 也就是说,如果我是程序员,在人物设计时,我只要一个字节就可以代表人物等级的代码 。但是如果这个游戏的人物等级是500呢,那么一个字节,最多表达的十进制是256 那么一个字节肯定不够,只能用二个字节来表示啦。如果是经验呢?大家知道,经验是很高的,一个游戏二个字节,肯定是不行的,那么就会定四字节。 所以字节决定这个数值的最大值的范围。
可能有人会说,为什么这么麻烦,如果我是程序员,我就全设成四字节,不就轻松吗?我们来看一下,四字节表示多少十进制数吧。我来告诉你吧,四十二亿九千四百九十六万七千二百九十六, 如果你的一个人物等级才200级,你用四十二亿去存放它,那你想想看,你要用多大的服务器呀,再加个玩游戏的人多,如果你一个游戏里的值全设计成这样,那不卡死去呀,这碗饭,你还能吃吗?
所以我们一定要知道,不是什么代码都是四字节表示的,有的是二个字节,有的是一个字节,如果去断定这个游戏里的代码是几个字节呢?这就要我们去分析封包才能得出来。
今天的课到这里就结束了,下节课教大家封包的分析。同学们,再见!