免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
工具下载:
链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取码:6tw3
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容:4.第二阶段x86游戏实战2-CE加强修改移动速度(浮点数存放方式与转换)
上一个内容里使用CE把移动速度进行了修改,通过修改移动速度实现了瞬移,前面的内容肯定初步认识了CE的强大,接下来认识一下内存
首先是进制:
逆向过程中常见的是二进制和十六进制,然后十进制现实生活中常用,但是逆向过程中不怎么常用
二进制的范围是0到1两个数字
十六进制是0到f一共十五个数字,分别是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
详细的在:2.第二阶段x86游戏实战2-认识进制、理解数据宽度和位的概念 里
位的概念:
计算机有32位系统和64位系统,它们的位都不一样,位是一个二进制数的单位,一位就是一个二进制数
32位:也就是有32个0或1
0000 0000 0000 0000 0000 0000 0000 0000
32位的取值范围是:这个范围指的是内存地址的范围,虽然是0-F(范围太长简称0-F)但中间很多内存地址我们没法用
0000 0000 0000 0000 0000 0000 0000 0000 - FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
64位:也就是有64个0或1
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
64位的取值范围是:这个范围指的是内存地址的范围,虽然是0-F(范围太长简称0-F)但中间很多内存地址我们没法用
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
-
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
然后知道范围之后,内存地址它会有一个范围(比如从内存地址0到内存地址10,这个0到10就是内存地址的范围,也叫内存空间),这个范围的最小单位是byte,byte是字节,一个字节是8个0或1组成,两个十六进制数占用一个字节,然后0-f这么大的范围用byte表示起来就很费劲,所以还有其它的单位1024个字节看做一个K,也就是一个千字节,1024个千字节看做成一个M,一个兆字节,然后1024个兆字节看做成一个G,G被称为吉字节,然后1024个G看做成一个T,T中文是太字节,其它的参考下图
然后知道取值范围和内存空间之后:
看内存地址的时候要有一幅画面,如下图,一个内存地址对应一个字节,也就是一个内存地址的空间是1个字节两个内存地址的空间是2个字节,然后也就是一个内存地址可以存放8个二进制数(或者说是8位二进制数,都是一个意思 ),两个内存地址(就是把两个内存地址看做成一个内存地址)可以存放16个二进制,也就是一个内存地址可以表达的最大的数字是FF,FF换成十进制就是255,要记住这个画面,看内存的时候这个画面很重要,在逆向的时候要根据数据宽度(字节)来找内存,比如4字节这就说明有4个内存地址,比如00000000 到 00000003它就是4字节也就是4个内存地址,但是一般CE(逆向工具)显示的时候内存地址只会显示00000000,也就是只会显示开头的地址,现在记住这个画面,后面逆向的时候带着这个画面一看就能懂了,如果没有这个画面看到内存地址和内存的数据会蒙
简化:一个内存地址里只能存放1字节数据,也就是一个内存地址对应的内存空间是1字节,也就是一个内存地址只能存放8个二进制数,多个内存地址组合起来的内存空间在逆向工具里只会显示开头的内存地址