找使用物品CALL 思路:利用物品在包裹中的位置不同,用CE找出使用的物品在包袱第几格,然后利用找出的地址,在OD中找出使用物品CALL
例: 首先使用包裹第4格的物品,然后用CE首次搜索3(包裹第一格是从0开始的,第二格为1,以此类推),然后使用第3格的物品,再次搜索2,一次类推,多搜索几次,直到出现少数几个内存地址,我这里出现仅一个地址,而且是静态地址,如下图 右键,寻找所有操作这个地址的代码: 然后再到包袱使用物品,出现如下代码: 接下来OD附加传世进程,在反汇编窗口中Ctrl+G,输入代码 477555,OD跳转到如图界面:
然后在0047555这个地址的代码处下断: 回到游戏,使用物品,游戏断下,然后按ALT+K或 鼠标点击
,出现如图: 然后右键点击代码,如图: 点击“显示调用”,回到反汇编窗口: 出现调用的CALL,这里有两段代码,分辨对应了2个CALL,具体哪个CALL,就需要自己用测试CALL的工具测试了,我这里测试过了,是下面这个CALL:
以下是传奇世界另一种分析方法: 思想:根据选中的物品在背包中的位置,搜 如:选中第三格的物品,搜2,再选第四格的,搜3,,从而得到一个地址:
如图: 下访问此地址的代码,然后回到游戏中双击无法使用的物品,其目的是为了取得双击的关健代码,如图:
481625
481ec0
注入如下代码成功: push 1//物品的位置 mov ecx,1799EAE0//固定值 call 004844b0
分析固定值的来历: 直接在ce中搜固定值,看是否有基址,此时出现四个地址,但都不是基址,继续用这四个值一个一个搜,有一个能得到基址:如图: 所以这个固定值的来历,就是:[3fff1a3a]+0这个里面的值就是这个固定值
|