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 1100点热度 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 win10 内存 R6300V2 OneNote linux

    COPYRIGHT © 2023 wkings.blog. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang