首先,我们就需要读出游戏中的部分数据,比如血值,蓝值等等。这就涉及到两个重要概念:基址和偏移量。
基址和偏移量是怎么找到的呢?尤其是基址,它是我们写外挂的根基,有了他,偏移量也就好找了,而且一般游戏的偏移量都不会变动的。
今天,我们就来详细讲一下寻找基址的方法(偏移量的方法也隐含在其中),工具是利用CE5.3。
第一步:首先打开游戏,选择一个角色,待完全进入游戏后,去找只打你一滴血的怪物,而且是你不能秒杀的怪物。找到后呢,先不要开打。这时打开CE 5.3(一下简称 CE )。
打开CE后,选择左上角的那个按钮 如图:
然后在列表里选择 elementclient.exe 这项,这是游戏的主程序。在Memory Scan Options 里选择 ALL 。
第二步: 现在我们开始搜索数据。在Value 的文本框里输入你游戏人物的血值,例如 776 。点击 First Scan 。搜索完后会有一大堆数据,并且没有显示,怎么办呢,不急,还没完。然后你就去打一个怪,只打一下,后面就让它打你,当血减少后,回到CE界面,在 Scan Type 那里选择 Decreased value ,然后点击 Next Scan 。这时你就会在结果列表里看到一些结果,然后选择和你当时血值相同的项,双击它,将他添加到地址列表。选择刚添加进来的项,右键点击它,选择 Find out what wrties to this address 。然后你就会看到列表里会出现这样一行代码 0045510f – 89 8e 54 02 00 00 – mov [esi+00000254],ecx ,前面可能不一样,但是 89 8e 54 02 00 00 – mov [esi+00000254],ecx 这个是不变得(除非游戏做了很大的更新),双击它,会得到一个信息窗口。如图:
这只是个例子,真实的信息要你找出来的才算。
第三步: 把那个搜索代码的窗口关闭,也就是你通过选择 Find out what wrties to this address 弹出的窗口,把它关闭。
在弹出的信息窗口里面找到标记为红色的那一行,记住esi 的值。在CE界面里选择 New Scan ,勾选 Hex ,在里面输入 那个 esi 的值,例如:63F7868 ,点击 First Scan 。搜索完后,看结果列表那,在列出的项目里,选择第一个(为什么选第一个?一般第一个是符合要求的正确结果,如果不正确,可以选第二个,第三个……直到找到正确的),那么例子里是这样的,如图:
第一个项目是 012CF01C ,我们双击它,将它加入地址列表。然后双击刚加入的项目,将它设置成如图的形式,如图:
设置好了,OK,回到CE界面,在我们刚刚修改的那个项目点击右键,选择 Find out what wrties to this address ,再选择 Find out what writes to this pointer ,然后我们小退,知道什么叫小退的吧,就是重新选择人物。OK,当你重新选择人物进入游戏的时候,你会发现多了几行代码,然后你找到这一行,如图:
双击它,在新打开的信息窗口里面,你会看到如图的信息。如图:
找到标记红色的那一行,再次在CE里面搜索这个 esi 的值,记得要勾选 Hex 哦。Ok,我们搜索它,会得到这些结果。如图:
然后你会说,怎么没有12F82C呢,你不是说是 12F82C 吗,怎么没有? 呵呵,且听我道来,12F82C 这是武林外传以前的指针,后来更新后,这个指针变了,所以呢,你搜索不到这个 12F82C指针了,还有一个值得注意的就是,你分析的这个游戏是不是采用了变指针的方式读取游戏数据的呢?就像我们搜索的到的最后的指针结果,有好几个,如: 0013ECA8 ,0013F464, 0013F82C,008C0654 。细心的你,把这个几个试下,会发现,不只一个能正确读出数据,所以呢,八成是你分析的游戏采用了变指针的方式,在不同的机器上,能用的指针有可能不同。(注:我们需要的有用的指针一般是这个形式 00xxxxxx ,共八位,只有6位有数据,前两位为0,形如这样的指针才是我们要找的指针)
好了,我已经讲完了,到这里,我们就找出了能读出武林外传一些数据的必要指针了,至于你要用来干什么,那随你便了,呵呵。
(也就是每个能够修改关键量的指针都找到了)
下一篇,我们就可以利用得到的基址,以及从网上找到的部分偏移量来做个简单外挂了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/36595.html