求个丝路找状态基址的思路
人物辅助状态的查找一直都没有好的思路。前面看了大家写得一些帖子,数据的结构大致是了解了,但是如何查找的思路还是不大清楚。恳请大家指点!!!发个走路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没有必要调用。验证通过 是说头顶上的技能吧,先找到技能ID, 然后用CE 找技能ID,找到地址,再在OD里找,后面的就不用说了吧,你连地址都能找出来 474103476 发表于 2012-9-29 10:58 static/image/common/back.gif
是说头顶上的技能吧,先找到技能ID, 然后用CE 找技能ID,找到地址,再在OD里找,后面的就不用说了吧,你连 ...
谢谢,我去试一试。不过这样好像经常只能找到一个循环。我试试再来请教吧。 mov eax,
mov esi,
这是多一个技能加一个0
mov edi,
mov eax,
mov ecx, 其实也是小妹妹教我找的,才发现。原来就是在人物基址 加上个偏移,这个要从下向上看 请问楼主组队人数基址如何找啊??? 474103476 发表于 2012-9-29 20:19 static/image/common/back.gif
mov eax,
mov esi,
这是多一个技能加一个0
非常感谢。也感谢小妹妹(不过他说应该叫笑眯眯哦{:1_131:}) 474103476 发表于 2012-9-29 20:19 static/image/common/back.gif
mov eax,
mov esi,
这是多一个技能加一个0
已经验证了,OK!另外,我发现技能总数的地址是 基址+2e0 ,这样先知道有多少个状态再遍历的话会更方便一些。希望对你也有一些帮助。 2E0 那地址可以不要的。有个基准地址的OD能看到。{:1_97:}
页:
[1]