CE编辑器偏移的问题,求解
CE编辑器偏移的问题,求解我在看一些CE寻找基址的时候,需要用到偏移,我看很多人用的都是用5.45.6中文版本的,我下都是英文,就下了6.7版本的,但是按照别人的方法,基...
CE编辑器偏移的问题,求解我在看一些CE寻找基址的时候,需要用到偏移,我看很多人用的都是用 5.4 5.6中文版本的,我下都是英文,就下了6.7版本的,但是按照别人的方法,基址便宜都不会用,也不知道从何下手,求教怎么使用《图一5.4版本 \图二6.7版本》
展开
1个回答
展开全部
一般来说,先要找到一个内存地址,比如说你通过不断增大减小金钱,用CE搜,搜出来了代表金钱的内存地址。这个地址我们称之为 目标地址 (我瞎起的名字)。 目标地址是会变化的,每次重开游戏,甚至换个角色,换个地图,都有可能变。
所以它的可用性不强。我们需要的是一个稳定的访问方式,这个东西就是基址。
让我们从写游戏的程序员角度来思考,程序里面需要一个地方放金钱。
假设这个游戏是C/C++写的。(一般来说都是这样的,就算不是,一般来说其他语言的底层细节和C是类似的)
最简单的情况:
比如说一个非常简单的小游戏,可能它的金钱直接就是个全局变量。因为这是一个C/C++写的游戏,全局变量的位置应该是固定的。当一个程序被加载后,其映像地址被确定,比如说现在的windows,该全局变量就在相对于这个映像地址的某个偏移处,这个偏移是固定的。这种情况,我们在CE搜到的直接就是不变的地址了。
如果是另一种情况:
假设这个游戏有一堆全局变量,写游戏的程序员看着这一堆全局变量很发愁。他决定把代码重构一下。把所有的全局变量整合到一个结构体里面,比如说原来是 血,蓝,金钱 都直接裸体放在全局。现在搞了一个struct,把血,蓝,金钱,都弄到结构体里面,当成员。然后全局放一个这个struct的实例。
这样的话,因为这个实例是全局的,它的地址不变,然后金钱在struct内的偏移不变,所以目标地址还是可以直接当基址用。
所以它的可用性不强。我们需要的是一个稳定的访问方式,这个东西就是基址。
让我们从写游戏的程序员角度来思考,程序里面需要一个地方放金钱。
假设这个游戏是C/C++写的。(一般来说都是这样的,就算不是,一般来说其他语言的底层细节和C是类似的)
最简单的情况:
比如说一个非常简单的小游戏,可能它的金钱直接就是个全局变量。因为这是一个C/C++写的游戏,全局变量的位置应该是固定的。当一个程序被加载后,其映像地址被确定,比如说现在的windows,该全局变量就在相对于这个映像地址的某个偏移处,这个偏移是固定的。这种情况,我们在CE搜到的直接就是不变的地址了。
如果是另一种情况:
假设这个游戏有一堆全局变量,写游戏的程序员看着这一堆全局变量很发愁。他决定把代码重构一下。把所有的全局变量整合到一个结构体里面,比如说原来是 血,蓝,金钱 都直接裸体放在全局。现在搞了一个struct,把血,蓝,金钱,都弄到结构体里面,当成员。然后全局放一个这个struct的实例。
这样的话,因为这个实例是全局的,它的地址不变,然后金钱在struct内的偏移不变,所以目标地址还是可以直接当基址用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询