游戏基址的原及用CE进行简单寻找1.62MB.doc

游戏基址的原及用CE进行简单寻找1.62MB.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
游戏基址的原及用CE进行简单寻找1.62MB

游戏基址的原理及用CE进行简单寻找 2011-11-13 16:51 注:对初学者,基址的一些简单概念入门挺好的,就记下来了 首先,要想写挂,必须要知道游戏中的数据是多少,我们才能决定有什么操作。所以本节课要解决的内容是---游戏一些简单的数据(红和蓝)。对于网游而言,用的肯定是动态内存。所以现在我们先把原理讲清楚,讲时候我尽量避免少用术语,用通俗的语言为大家解释。 有的人一直不理解为什么每次血的内存位置是变的,但是既然是变的,为什么我们又能通过固定的程序找到呢? 这里我用以下图表示,并且用一些通俗话解释 因此要找游戏的血量,关键是把路线图中红色的三个不变的数字找到,也就是基址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、然后出现如下图片,红色内行写着 ecx+000001e0,这里ecx?代表二级基址内放的数值,1e0?代表偏移量2。方框内是CE帮我们计算好的二级基址内的数值,我们就是需要他。把这个数字记下啦。通过它寻找二级基址的位置 13、点新的搜索,然后输入刚刚找到的二级基址内的数值,并且勾上前面的16进制(因为这个数据是16进制),再点击首次搜索(找找看哪个地址内的数值,满足上面这个数字),得到,如下两个结果,然后双击这两个结果,把他们加入下面的方框内。并且添加注释第A次进游戏得到的可能二级基址。 14、二级基址只有一个,所以这两个结果只有一个是真的,(一般来说第一个是真的地址,但也不是绝对的。碰RP的话,你也可以直接用第一)所以接下来要判断哪个才是真的二级基址。刚刚说过,退到游戏选择人物画面再进游戏,一级基址不变,二级基址不变,但是二级基址内放的数字变了,这导致这个时候血的内存地址也变了。所以下面要做的就是退到人物选择画面,再进入游戏,通过刚刚方法(1---13步骤),再找次二级基址,他应该和前一回找到的二级基址一样。 下面图中我描述为(B可能的二级基址)的东东,是我第二次搜索得到的可能二级基址 。比较下两次进游戏得到的二级基址,只有红色的地址是没变的,说明他就是二级基址。 15、找到二级基址后,通过上图的面板你们也发现 二级基址(10822D20 )? ?=? ?一级基址的数值()? ?+? ???偏移1() 所以现在我们要找一级基址的数值 和 偏移1. 我们说过二级基址数值只要进入正式游戏都不不会改变了,只有进入人物选择画面的时候才变,下面我们要做的就是跟踪这个二级基址,回到人物选择画面,看看是谁往这个基址内写入东东~ 16、正式进入游戏后,我们发现检测到几个结果,那到底哪个才是真的呢? 我们选择红色那个,因为他有mov ? 17、双击这个红色,然后得到如下图。红色那行写着 eax+ecx*4,这里前面的eax?代表一级基址内放的数值,ecx*4?代表偏移量1。方框内是CE帮我们计算好的一级基址内的数值,我们就是需要他。把这个数字记下啦。通过它寻找一级基址的位置。同时我们发现ecx代表的是4(十六进制),4(十六进制)*4=10(十六进制)。10就是偏移1 18、搜索一级基址内的数值10822D10,看看哪个地址内装的是他。结果就一个 19、好了现在我们知道所有的东西了,红色部分是无论哪次进游戏都不变的。找到他们,现在就能进行找血的内存位置了。 一级基址(012BAB94 ) 二级基址(10822D20 )??=??一级基址的数值(10822D10)? ?+? ??偏移1(10) 血内存地址(055FCE18) =??二级基址的数值(055FCC38)? ?+ ? ??偏移2(1e0)

文档评论(0)

aena45 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档