ce 内置教程 6 第五关 找基址
原理
按照我的个人理解:
存放这个数值的内存是动态申请出来的。每次都可以刷新这个位置,但不但我们需要访问到这个地址,游戏本身也需要访问这个地址,所以一定有一个不变的量存放着这个动态地址。
形象点说就是,有一个程序,主结构体中有一个指针变量。
主结构体的位置是不变的,不是new出来的。
然后new一块内存给那个指针变量。用来存放那个数值。
可见,我们直接搜索到的那个地址,有可能在变化后就被delete掉了。不可靠。
可靠的方法是找到主结构体的地址,然后加一个偏移,找到那个指针变量的位置,每次读取指针变量存放的地址,然后去访问这个地址,就一定可以找到数值了。
具体操作
首先找到那个数值的地址。
然后右键,找出是什么改写了这个地址。
再点击,改变数值。
可以发现有个命令出现了:
双击这个命令可以显示具体信息。
可以看出,访问了一次该地址里边的数值。并且没有加偏移量。
我们去以16进制的方式去搜索,看看有没有存放这个地址。
那么我们现在添加一个地址,从这个基地址开始,然后加一个上边的一个0偏移,即可找到需要的数值,即使地址动态变化,我们这个手动地址可以正确指向数值。
按照教程的说法,有三种方式可以过这关。
1,直接锁定我们手动创建的这个指针,将数值改为5000,然后点“改变指针”。
这样即使基地址中的那个指针变量存放的地址变了,我们也能顺着继续找到真正的数值位置。
点一次“改变指针”后,你再双击你的指针,可以发现基地址,存放的那个地址变了,但是我们还是正确找到了数值。
第一次基地址存放的地址是016F4E60,而这一次存放的是016F6210.
2,不锁定这个指针,点“改变指针”,然后在三秒钟内改变我们指针的数值到5000.
3,点“改变指数”,然后在三秒钟内搜索到新地址,改为5000.(手动滑稽):joy: