菜鸟教程第四课、用ce和OD找玩家(怪物)选中状态偏移(“绿色征途”人物篇)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

菜鸟教程第四课、用ce和OD找玩家(怪物)选中状态偏移

广海: lchhjx 转载请注明出处!

在游戏中存在一种内存地址,这个内存地址的值只会随玩家(怪物)选中是否被选中而改变。只要选中某个玩家(怪物),而且不管是否是同一,这个内存地址的值都不会改变;而在没有选中时,这个内存地址的值才会变为其它的某个定值。

我们就可以根据这个内存地址的值来判断当前有没有选中某个玩家(怪物)。

根据经验猜测在没有选中玩家时,该内存地址中的数值为0,而选中某个玩家后,该内存地址中的数值应该大于0。

一、步骤

1、不选玩家,用ce搜精确数值0,数据类型选2字节。为什么不用4字节呢?因为在这之前,我用4字节搜索了以后没有发现比较好的数值,所以换了一种数据类型来继续查找。

2、选中某个玩家,查找大于0的数值:

3、让自己绕这个玩家走两步,因为你已经选中一个玩家,不管你现在做什么动作,这个内存地址中的数值都不会改变,所以搜未更改的数值:

4、重复上面的步骤(恰当的选择,不一定完全照搬),发现还有17个地址,现在选中了一个玩家:

5、一般我们将数值比较小的用来表示选中状态,挑选出其中数值较小的4个值。

6、下面怎样再从这四个地址中筛选呢?我提供两种方法:

方法一、多选几个不同的玩家,找出没有变化的。

方法二、选中某个NPC,因为NPC不是玩家,所以这个值应该发生变化。

7、我用方法二选中了一个NPC,发现第二个和第四个发生了变化,我就选第二个地址[03862B38]来找下来源,如果找不到就用第四个找:

8、用OD附加游戏,在命令栏中使用dd 03862B38命令,即查看[03862B38]地址中的值:

9、点鼠标右键,选“短型/无符号十进制”:

第一个数字0代表当前没有选中某个玩家。

10、在0处,点右键下硬件访问(word)断点:

11、到游戏中选中某个玩家,游戏断下,来到下图中的1位置(08-11步类似于ce中的“查找访问此地址的代码”):

虽然断在1位置,但其实访问的是上面的2位置:

往上找,在3位置找到EAX的来源:

所以可以用内存地址[[0B90488]+544]里的word型数值来代表当前玩家选中状态,数值为0时代表没有选中,数值为1时代表选中某个玩家。

二、思考:

那么怪物(NPC)选中状态偏移又是什么呢?

其实我们已经找到了,也是此地址。当数值为256时就代表选中了某个怪物。

相关文档
最新文档