找回密码
 注册帐号
查看: 1556|回复: 7

[编程问题] 求个丝路找状态基址的思路

[复制链接]
发表于 2012-9-29 08:48:02 | 显示全部楼层 |阅读模式
人物辅助状态的查找一直都没有好的思路。前面看了大家写得一些帖子,数据的结构大致是了解了,但是如何查找的思路还是不大清楚。恳请大家指点!!!
发个走路CALL的查找过程,供大家参考:
走路CALL
1、从00914B00    B8 D4100000     mov eax,0x10D4 封包函数 开始下断,走路就断,一直到这:
00ADE3C2    8947 44         mov dword ptr ds:[edi+0x44],eax
00ADE3C5    0FB755 00       movzx edx,word ptr ss:[ebp]
00ADE3C9    66:8957 0C      mov word ptr ds:[edi+0xC],dx
00ADE3CD    8B0B            mov ecx,dword ptr ds:[ebx]
00ADE3CF    894F 10         mov dword ptr ds:[edi+0x10],ecx
00ADE3D2    8B53 04         mov edx,dword ptr ds:[ebx+0x4]
00ADE3D5    8957 14         mov dword ptr ds:[edi+0x14],edx
00ADE3D8    8B4B 08         mov ecx,dword ptr ds:[ebx+0x8]
00ADE3DB    894F 18         mov dword ptr ds:[edi+0x18],ecx
00ADE3DE    50              push eax
00ADE3DF    8BCF            mov ecx,edi
00ADE3E1    C647 1C 01      mov byte ptr ds:[edi+0x1C],0x1
00ADE3E5    8947 20         mov dword ptr ds:[edi+0x20],eax
00ADE3E8    E8 03FCFFFF     call sro_clie.00ADDFF0
分析可知[EDI+C]为地图值,[EDI+10]为横坐标值,[EDI+14]为高值,[EDI+18]为纵坐标值
往上查找EDI的由来
2、发现附近有基址[1256e34]
对比分析数据发现[1256e34]的值和EDI相差694
最后得出:edi=[1256e34]+694
3、编程可知。只要往edi+10,加14,+18的地址写入数据就可以走路了,其它的CALL没有必要调用。验证通过
发表于 2012-9-29 10:58:49 | 显示全部楼层
是说头顶上的技能吧,先找到技能ID, 然后用CE 找技能ID,找到地址,再在OD里找,后面的就不用说了吧,你连地址都能找出来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-29 16:34:24 | 显示全部楼层
474103476 发表于 2012-9-29 10:58
是说头顶上的技能吧,先找到技能ID, 然后用CE 找技能ID,找到地址,再在OD里找,后面的就不用说了吧,你连 ...

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

使用道具 举报

发表于 2012-9-29 20:19:05 | 显示全部楼层
mov eax,[esi+5c]
mov esi,[edi+8]
这是多一个技能加一个0
mov edi,[eax]
mov eax,[ecx+2dc]
mov ecx,[01037D40]           其实也是小妹妹教我找的,才发现。原来就是在人物基址 加上个偏移,这个要从下向上看
回复 支持 反对

使用道具 举报

发表于 2012-9-30 22:52:30 | 显示全部楼层
请问楼主组队人数基址如何找啊???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-1 08:14:32 | 显示全部楼层
474103476 发表于 2012-9-29 20:19
mov eax,[esi+5c]
mov esi,[edi+8]
这是多一个技能加一个0

非常感谢。也感谢小妹妹(不过他说应该叫笑眯眯哦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-1 08:28:47 | 显示全部楼层
474103476 发表于 2012-9-29 20:19
mov eax,[esi+5c]
mov esi,[edi+8]
这是多一个技能加一个0

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

使用道具 举报

发表于 2012-10-20 21:18:17 | 显示全部楼层
2E0 那地址可以不要的。有个基准地址的OD能看到。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

QQ|Archiver|手机版|小黑屋|依人网络官方网站 ( 陕ICP备19025998号-1 )

GMT+8, 2024-4-24 16:46 , Processed in 0.051234 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表