游戏基址的原理及用CE进行简单寻找概要
游戏基址的原理及用 CE 进行简单寻找 2011-11-13 1651 注对初学者,基址的一些简单概念入门挺好的,就记下来了 首先,要想写挂,必须要知道游戏中的数据是多少,我们才能决定有什么操作。 所以本节课要解决的内容是---游戏一些简单的数据红和蓝。对于网游而言, 用的肯定是动态内存。所以现在我们先把原理讲清楚,讲时候我尽量避免少用术 语,用通俗的语言为大家解释。 有的人一直不理解为什么每次血的内存位置是变的,但是既然是变的,为什么我 们又能通过固定的程序找到呢 这里我用以下图表示,并且用一些通俗话解释 因此要找游戏的血量,关键是把路线图中红色的三个不变的数字找到,也就是基 址 1 的地址(下面就简称基址 1 了),偏移量 1,偏移量 2。然后根据以下公式 得到血量 基址 2基址 1 内放的数字偏移量 1 血内存地址基址 2 内放的数字偏移量 2 HP 值血内存地址内放的数字 从上面看到, 每次游戏之所以血内存地址会变, 关键是因为, 每次启动游戏时候, 基址 1 内的数字是不同的。 下面我们就以前两天刚公测的游戏昆仑 OL为例,找一找血的动态内存地址。 1、首先打开 CE,在设置里面尽量使用内核模式调试器 2、点击左上角的电脑图标 3、选中游戏进程,按确定 4、可以看到人物的血量是 220,所以输入 220,点首次搜索。其他用默认 5、以下是搜索结果,可以看到结果很多 6、出门让怪砍,使你掉血,然后 CE 在扫描内型下拉框里选择减少的数值 7、搜索完发现结果很多。。。。 8、没事我们多搜索几次,直到出现比较少的数字为止,看现在就一个地址了 9、双击找到的地址,把他加入下面的方框内 10、修改描述为 1.内存地址(表示第一次游戏内找到的内存地址),右击地址, 选择“查找写入该地址的代码” 11、以下是结果,并且双击找到的结果 12、然后出现如下图片,红色内行写着 ecx000001e0,这里 ecx代表二级基址 内放的数值,1e0代表偏移量 2。方框内是CE 帮我们计算好的二级基址内的数 值,我们就是需要他。把这个数字记下啦。通过它寻找二级基址的位置 13、点新的搜索,然后输入刚刚找到的二级基址内的数值,并且勾上前面的 16 进制(因为这个数据是16 进制),再点击首次搜索(找找看哪个地址内的数值, 满足上面这个数字),得到,如下两个结果,然后双击这两个结果,把他们加入 下面的方框内。并且添加注释第 A 次进游戏得到的可能二级基址。 14、二级基址只有一个,所以这两个结果只有一个是真的, (一般来说第一个是 真的地址,但也不是绝对的。碰 RP 的话,你也可以直接用第一)所以接下来要 判断哪个才是真的二级基址。刚刚说过,退到游戏选择人物画面再进游戏,一级 基址不变,二级基址不变,但是二级基址内放的数字变了,这导致这个时候血的 内存地址也变了。所以下面要做的就是退到人物选择画面,再进入游戏,通过刚 刚方法1---13 步骤,再找次二级基址,他应该和前一回找到的二级基址一样。 下面图中我描述为(B 可能的二级基址)的东东,是我第二次搜索得到的可能二 级基址 。比较下两次进游戏得到的二级基址,只有红色的地址是没变的,说明他就是二 级基址。 15、找到二级基址后,通过上图的面板你们也发现 二级基址10822D20 一级基址的数值偏移 1 所以现在我们要找一级基址的数值 和 偏移 1. 我们说过二级基址数值只要进入正式游戏都不不会改变了, 只有进入人物选择画 面的时候才变,下面我们要做的就是跟踪这个二级基址,回到人物选择画面,看 看是谁往这个基址内写入东东 16、正式进入游戏后,我们发现检测到几个结果,那到底哪个才是真的呢 我们选择红色那个,因为他有 mov 17、双击这个红色,然后得到如下图。红色那行写着 eaxecx*4,这里前面的 eax代表一级基址内放的数值,ecx*4代表偏移量 1。方框内是 CE 帮我们计 算好的一级基址内的数值,我们就是需要他。把这个数字记下啦。通过它寻找一 级基址的位置。同时我们发现 ecx 代表的是 4(十六进制),4(十六进制)*410 (十六进制)。10 就是偏移 1 18、搜索一级基址内的数值 10822D10,看看哪个地址内装的是他。结果就一个 19、好了现在我们知道所有的东西了,红色部分是无论哪次进游戏都不变的。找 到他们,现在就能进行找血的内存位置了。 一级基址012BAB94 二级基址10822D20 一级基址的数值10822D10偏移 110 血内存地址055FCE18 二级基址的数值055FCC38偏移 21e0