syfo9 发表于 2012-9-29 08:48:02

求个丝路找状态基址的思路

人物辅助状态的查找一直都没有好的思路。前面看了大家写得一些帖子,数据的结构大致是了解了,但是如何查找的思路还是不大清楚。恳请大家指点!!!
发个走路CALL的查找过程,供大家参考:
走路CALL
1、从00914B00    B8 D4100000   mov eax,0x10D4 封包函数 开始下断,走路就断,一直到这:
00ADE3C2    8947 44         mov dword ptr ds:,eax
00ADE3C5    0FB755 00       movzx edx,word ptr ss:
00ADE3C9    66:8957 0C      mov word ptr ds:,dx
00ADE3CD    8B0B            mov ecx,dword ptr ds:
00ADE3CF    894F 10         mov dword ptr ds:,ecx
00ADE3D2    8B53 04         mov edx,dword ptr ds:
00ADE3D5    8957 14         mov dword ptr ds:,edx
00ADE3D8    8B4B 08         mov ecx,dword ptr ds:
00ADE3DB    894F 18         mov dword ptr ds:,ecx
00ADE3DE    50            push eax
00ADE3DF    8BCF            mov ecx,edi
00ADE3E1    C647 1C 01      mov byte ptr ds:,0x1
00ADE3E5    8947 20         mov dword ptr ds:,eax
00ADE3E8    E8 03FCFFFF   call sro_clie.00ADDFF0
分析可知为地图值,为横坐标值,为高值,为纵坐标值
往上查找EDI的由来
2、发现附近有基址
对比分析数据发现的值和EDI相差694
最后得出:edi=+694
3、编程可知。只要往edi+10,加14,+18的地址写入数据就可以走路了,其它的CALL没有必要调用。验证通过

474103476 发表于 2012-9-29 10:58:49

是说头顶上的技能吧,先找到技能ID, 然后用CE 找技能ID,找到地址,再在OD里找,后面的就不用说了吧,你连地址都能找出来

syfo9 发表于 2012-9-29 16:34:24

474103476 发表于 2012-9-29 10:58 static/image/common/back.gif
是说头顶上的技能吧,先找到技能ID, 然后用CE 找技能ID,找到地址,再在OD里找,后面的就不用说了吧,你连 ...

谢谢,我去试一试。不过这样好像经常只能找到一个循环。我试试再来请教吧。

474103476 发表于 2012-9-29 20:19:05

mov eax,
mov esi,
这是多一个技能加一个0
mov edi,
mov eax,
mov ecx,         其实也是小妹妹教我找的,才发现。原来就是在人物基址 加上个偏移,这个要从下向上看

zhoujinliang 发表于 2012-9-30 22:52:30

请问楼主组队人数基址如何找啊???

syfo9 发表于 2012-10-1 08:14:32

474103476 发表于 2012-9-29 20:19 static/image/common/back.gif
mov eax,
mov esi,
这是多一个技能加一个0


非常感谢。也感谢小妹妹(不过他说应该叫笑眯眯哦{:1_131:})

syfo9 发表于 2012-10-1 08:28:47

474103476 发表于 2012-9-29 20:19 static/image/common/back.gif
mov eax,
mov esi,
这是多一个技能加一个0


已经验证了,OK!另外,我发现技能总数的地址是   基址+2e0 ,这样先知道有多少个状态再遍历的话会更方便一些。希望对你也有一些帮助。

xiaomeimei 发表于 2012-10-20 21:18:17

2E0 那地址可以不要的。有个基准地址的OD能看到。{:1_97:}
页: [1]
查看完整版本: 求个丝路找状态基址的思路