零起点学VB做外挂(五)

来源:互联网 发布:粉笔直播课淘宝 编辑:程序博客网 时间:2024/05/19 02:39

   具备了前面的基础。 下面我们就要逐步深入了。

   首先,我们就需要读出游戏中的部分数据,比如血值,蓝值等等。这就涉及到两个重要概念:基址和偏移量。

基址和偏移量是怎么找到的呢?尤其是基址,它是我们写外挂的根基,有了他,偏移量也就好找了,而且一般游戏的偏移量都不会变动的。

   今天,我们就来详细讲一下寻找基址的方法(偏移量的方法也隐含在其中),工具是利用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,形如这样的指针才是我们要找的指针)

好了,我已经讲完了,到这里,我们就找出了能读出武林外传一些数据的必要指针了,至于你要用来干什么,那随你便了,呵呵。
(也就是每个能够修改关键量的指针都找到了)

下一篇,我们就可以利用得到的基址,以及从网上找到的部分偏移量来做个简单外挂了。

原创粉丝点击