吉游网提供最新游戏下载和手游攻略!

页游外挂开发教程06:查找走路跑步call

发布时间:2024-06-15浏览:33

在本期教程中,我们将通过 Cheat Engine(CE)来查找传奇怀旧版游戏中走路和跑路的函数调用。首先,我们要确保游戏已经启动,并且我们已经附加了 Cheat Engine 到游戏的进程上。

接下来,我们可以通过角色的不同状态(静止、跑动、走动)来查找这个函数的地址。通常情况下,我们可以首先搜索未知的初始值,然后改变角色状态,再搜索变化的数值。因为我已经找过了,我知道在静止状态下这个值是0。所以我们可以先搜索0,然后改变状态再搜索。

搜索完后,会有一些结果,我们右键选择其中一个结果,查看其访问的代码。然后再改变角色状态,随便选择一个地址,查看其状态。这个时候我们可以打开 OllyDbg(OD)来分析代码。

在 OD 中,我们可以复制这个地址,然后找到这个位置,可以看到头部已经被混淆了。所以我们直接在这个找到的位置下一个断点,然后走一步,再取消断点,返回到 Cheat Engine。使用 Ctrl+F9 返回到这个位置。

在这个位置,我们可以把这个函数的地址保存起来,然后在其附近下一个断点。然后我们可以走动一下,点击走一下,然后步过一下,观察 ES(角色状态)的值。继续步过,我们可以看到第二个 pose 是这个。然后我们可以进入 car 函数里面,看一下它一共提供了几个参数。可以看到 retar 了 8,所以它是两个参数的函数。

在分析完这两个参数后,我们可以继续步过一下代码。可以看到 CL 的值是 8,DL 是 EDS。首先我们要记录下来。

然后我们可以运行游戏,先点击走路状态,然后右键点击跑路状态。在走路状态下,CL 的值是 RC,DL 的值是耀武帝,EX 的值是不变的。这样我们就把走路和跑路传递的值都记录下来了。根据分析,这两个 pose 参数传递的是一个方向的数值,具体的数值我们稍后再说。接下来我们来看 CL 这个值。

CL 是 ECX 的低 8 位,也就是 32 位的通用计时器的第 8 位。ECX 是 77376D10,每一位都是 4 字节组成的。CL 就是它的第 8 位,也就是 10。DL 也是类似的,我们可以将它的值变为相应的数值。

接下来我们再看 EX,它传递的是一个地址。我们可以用简单的办法搜索一下,可以看到一个绿色的地址是 6672440。我们再到这个地址去看一下,可以看到传递的是正确的数值。

分析完成后,我们可以用代码注入器试一下我们找到的这个地址。首先将参数推入栈中,然后将游戏运行起来。断点取消后,我们用代码注入器去试一下,可以看到角色开始往上走了。

刚才我们记住的这个数值,就相当于角色的行动状态。这个 8 对应着走,而 10 对应着跑。他们的含义都是类似的,都是角色的不同行动状态。

停一会别走,然后通过我的分析,我告诉大家一下这两个 pose 都传递了什么。它们传递的是角色的八个方向,即上下左右、左上、左下、右上和右下。这总共是八个方向的数值,足够满足我们的需求。

我们可以让角色往上走一下,然后点击下一个断点。可以看到当他往上走的时候,pose 的值会改变,这个值就是传递的方向。

然后,他传递的是腰。如果你想让角色往上走,就可以给他传递两个固定的值。再运行起来,再往左走一下,左的话是 A5,然后第二个的话是 C9。我们记录下这八个方向的数值就可以了。

刚才试的是跑,接下来我们应该试一试走。然后,将刚才找到的 1C3 和 1,再赋值,走的话给他变为 8,这里变为 0,其他都保持不变。然后运行起来,断点取消,输入代码,可以看到角色是往前走了一步。

这样的话,我们就找到了正确的走路和跑路的 call,也就是方向的定义。我将其称为方向考,走方向和跑路考。下期教程,我们将带领大家去编写代码。然后再下期教程,我们将找一下他内挂带的那个寻路考。有很多方法,比如通过机器、通过三个机粒子等,也可以达到走路和跑路的效果。但我觉得没有这个好,所以在这里就给大家讲一下这个。本期教程就到这里。

热点资讯