wking's blog

  • 文章分类
    • 日常随笔
    • IT技术
    • 系统封装
    • 大航海时代
  • 关于博主
GOD'S IN HIS HEAVEN, ALL'S RIGHT WITH THE WORLD.
  1. 首页
  2. IT技术
  3. 正文

[原创]大航海时代ol TAB ID代码分析 v5007

2012-03-21 2479点热度 0人点赞 6条评论

选择一个人,得到ID。用CE搜索,得到一个地址。再用CE搜索这个地址,得到另一个地址。在新地址上选择“谁访问了这个地址”,CE记录下一个汇编语句。记一下这个汇编语句地址。然后关CE,打开OD,附加游戏。跳转到这个汇编语句,断点。然后分析。会得出以下结论:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
[php]TAB ID场景的代码
通用计算CALL代码段
0052CBC0 /$ 56 push esi ;这里设置断点,此时EAX=ID,ECX=基址
0052CBC1 |. 8B7424 10 mov esi,dword ptr ss:[esp+0x10]
0052CBC5 |. 57 push edi
0052CBC6 |. 8B7C24 0C mov edi,dword ptr ss:[esp+0xC]
0052CBCA |. 8BC7 mov eax,edi
0052CBCC |. C1E8 04 shr eax,0x4 ; ID2=int(id/16)
0052CBCF |. 8906 mov dword ptr ds:[esi],eax
0052CBD1 |. 33D2 xor edx,edx
0052CBD3 |. F771 08 div dword ptr ds:[ecx+0x8] ; div [base+8]
0052CBD6 |. 8B4424 10 mov eax,dword ptr ss:[esp+0x10]
0052CBDA |. 8910 mov dword ptr ds:[eax],edx
0052CBDC |. 8B49 04 mov ecx,dword ptr ds:[ecx+0x4] ; ecx=[base+4]
0052CBDF |. 85C9 test ecx,ecx
0052CBE1 |. 74 1D je Xwow.0052CC00
0052CBE3 |. 8B0491 mov eax,dword ptr ds:[ecx+edx*4] ; eax=[ecx+edx*4]
0052CBE6 |. 85C0 test eax,eax
0052CBE8 |. 74 16 je Xwow.0052CC00
0052CBEA |. 8B36 mov esi,dword ptr ds:[esi] ; ID2
0052CBEC |. 8D6424 00 lea esp,dword ptr ss:[esp]
0052CBF0 |> 3970 0C /cmp dword ptr ds:[eax+0xC],esi ; ID2比较,不相等继续读下一个
0052CBF3 |. 75 04 |jnz Xwow.0052CBF9
0052CBF5 |. 3938 |cmp dword ptr ds:[eax],edi ; ID比较,不相等继续读下一个
0052CBF7 |. 74 09 |je Xwow.0052CC02
0052CBF9 |> 8B40 08 |mov eax,dword ptr ds:[eax+0x8]
0052CBFC |. 85C0 |test eax,eax
0052CBFE |.^ 75 F0 \jnz Xwow.0052CBF0
0052CC00 |> 33C0 xor eax,eax
0052CC02 |> 5F pop edi
0052CC03 |. 5E pop esi
0052CC04 \. C2 0C00 retn 0xC
 
 
00796090 /$ 51 push ecx
00796091 |. 8D4424 08 lea eax,dword ptr ss:[esp+0x8]
00796095 |. 50 push eax
00796096 |. 8B4424 0C mov eax,dword ptr ss:[esp+0xC]
0079609A |. 8D5424 04 lea edx,dword ptr ss:[esp+0x4]
0079609E |. 52 push edx
0079609F |. 50 push eax
007960A0 >|. E8 1B6BD9FF call wow.0052CBC0 ;计算CALL第一次调用,此时ECX=固定对象基址CB7C98-&H4,EAX=ID
007960A5 |. 85C0 test eax,eax
007960A7 |. 74 07 je Xwow.007960B0
007960A9 |. 8B40 04 mov eax,dword ptr ds:[eax+0x4] ;关键地址传送
007960AC |. 59 pop ecx
007960AD |. C2 0400 retn 0x4
0042B926 |. 5E pop esi ; 070FF0F8
0042B927 |. C3 retn
00527EBF |. 33FF xor edi,edi
 
不管了,过程太繁琐。直接按CTRL+F8。要找一下ID=EAX。
 
00432A3F |. E8 BC8EFFFF call wow.0042B900
0042B921 |. E8 3AC20300 call wow.00467B60
007960A0 >|. E8 1B6BD9FF call wow.0052CBC0 ;计算CALL第二次调用,根据ID和基址CB7C98,再次计算。返回EAX
00432A44 |. 8BF0 mov esi,eax
00432A53 |. 8BCE mov ecx,esi
0045F1A4 |. 8BF1 mov esi,ecx
0045F1BA |. 8B8E 74010000 mov ecx,dword ptr ds:[esi+0x174] ;ESI是二次计算得到的EAX值。会在第三次调用里使用。前两次ESI都是ID。但这里第三次使用的是第二次返回的值。
0045F1C5 |. 51 push ecx
0045F1C6 |. 8D88 28270000 lea ecx,dword ptr ds:[eax+0x2728]
0045F1CC |. E8 EFD90C00 call wow.0052CBC0 ;计算CALL第三次调用
0045F1D1 |. 85C0 test eax,eax
0045F1D3 |. 74 26 je Xwow.0045F1FB
0045F1D5 |. 8B70 04 mov esi,dword ptr ds:[eax+0x4]
0045F1D8 |. 85F6 test esi,esi
0045F1DA |. 74 1F je Xwow.0045F1FB
0045F1DC |. 8B46 18 mov eax,dword ptr ds:[esi+0x18]
0045F1DF |. 85C0 test eax,eax
0045F1E1 |. 7E 10 jle Xwow.0045F1F3
0045F1F3 |> \8B46 0C mov eax,dword ptr ds:[esi+0xC] ;最终结果指针
0045F1F6 |. 5E pop esi ; 04E3B910
0045F1F7 |. 83C4 08 add esp,0x8
0045F1FA |. C3 retn[/php]

最后还是附上前辈编写,我修补的脚本。另外添加了坐标功能。找坐标不复杂,只需用OD数据窗口转到返回EAX值,把浏览方式改成浮点,然后往下翻一翻就有了。

wkings.net-显示TAB_ID的名字

TAB_ID

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022-11-01

wking

不管博客型博主

点赞
< 上一篇
下一篇 >

文章评论

  • mattle

    大师,能不能写一篇查找大航海时代书库地图的内存代码的文章,我用CE查,只会查到动态的地址。

    2012-10-25
    回复
  • king

    你说的是找持有物品里的,读出来的图?

    2012-10-28
    回复
    • mattle

      @king 是的,读出来的图,能不能留个QQ联系下啊!

      2012-10-28
      回复
  • Jimmy

    求现在国服内侧多开方法啊....都不知道该怎么修改现在bin了

    2012-11-10
    回复
    • king

      @Jimmy 国服目前我没什么好方法,尽请期待航海泡泡

      2012-11-21
      回复
  • Jimmy

    经过我天天在贵站查资料...alexa都跃居71w了....不知道现在1.003能多开吗..求教啊

    2012-11-10
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    标签聚合
    大航海时代 wordpress 一支红杏 C++ win10 linux R6300V2 OneNote

    COPYRIGHT © 2024 wkings.blog. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang