过年前,有个朋友对我说,遇到一款XX游戏 数据找不到.我就很好奇,就去下来看看,确实一开始啥都找不到 不过经过15天的不懈努力 终于整出点名堂了,但是后续数据依然是很BT, 由于自己有项目在分析,所以就放弃这个鸟玩意了.所以放出来给有心的人去研究研究
G-Bits 牛逼? 看在我为你奋斗了15个通宵 称赞一下 确实牛 不过 嘿嘿.......
开始了..
以下数据与特征码都是年前的了,现在对比下应该还存在.
首先先说下我对游戏的理解,一般游戏有各种容器,人物有人物的容器 对象有对象的容器.物品有物品的容器...... 但是这游戏让人抓狂的是..没有容器..只有表..对你没听错.就是表..还他么是VM表,为什么里面没有VM代码我确说是VM表呢?
答案是..
5FAFC6C5 |. E8 76D40100 call CXCentau.5FB19B40
5FAFC6CA |. 68 99000000 push 99
5FAFC6CF |. 68 2820D55F push CXCentau.5FD52028 ; ASCII "..\src\vm\vm_type_mapping.c"
5FAFC6D4 |. 68 2484E65F push CXCentau.5FE68424 ; ASCII "VM"
我看到的.嘻嘻.不过这是我的理解,不知道有没有更好的称呼.求教
比如HP 他就用"HP"来查询HP, 但是问题来了, 游戏里 怪物有HP 玩家有HP NPC也有HP 那么怎么知道哪个是哪个的呢..
贴一段特征码
5CEA3920 /$ 55 push ebp
5CEA3921 |. 8BEC mov ebp, esp
5CEA3923 |. 81EC 0C040000 sub esp, 40C
5CEA3929 |. A1 80F6335D mov eax, dword ptr [5D33F680]
5CEA392E |. 33C5 xor eax, ebp
5CEA3930 |. 8945 FC mov dword ptr [ebp-4], eax
5CEA3933 |. 53 push ebx
5CEA3934 |. 8B5D 10 mov ebx, dword ptr [ebp+10]
5CEA3937 |. 56 push esi
5CEA3938 |. 8B75 08 mov esi, dword ptr [ebp+8]
5CEA393B |. 57 push edi
5CEA393C |. 8B06 mov eax, dword ptr [esi]
5CEA393E |. 8B7D 0C mov edi, dword ptr [ebp+C]
5CEA3941 |. 8378 14 00 cmp dword ptr [eax+14], 0
5CEA3945 |. 89BD F8FBFFFF mov dword ptr [ebp-408], edi
5CEA394B |. 899D F4FBFFFF mov dword ptr [ebp-40C], ebx
5CEA3951 |. 0F84 82010000 je CXCentau.5CEA3AD9
5CEA3957 |. 8A46 05 mov al, byte ptr [esi+5]
5CEA395A |. A8 08 test al, 8
5CEA395C |. 75 2B jnz short CXCentau.5CEA3989
5CEA395E |. 8BFF mov edi, edi
5CEA3960 |> A8 10 /test al, 10
5CEA3962 |. 8B06 |mov eax, dword ptr [esi]
5CEA3964 |. 75 55 |jnz short CXCentau.5CEA39BB
5CEA3966 |. 6A 2F |push 2F ; /c = 2F ('/') [STRING [EAX+10]]=="hp"
5CEA3968 |. FF70 10 |push dword ptr [eax+10] ; |s
5CEA396B |. FF15 14BC0E5D |call dword ptr [<&MSVCR110.strchr>] ; \strchr
5CEA3971 |. 83C4 08 |add esp, 8
5CEA3974 |. 85C0 |test eax, eax
5CEA3976 |. 75 06 |jnz short CXCentau.5CEA397E
5CEA3978 |. 804E 05 08 |or byte ptr [esi+5], 8
5CEA397C |. EB 04 |jmp short CXCentau.5CEA3982
5CEA397E |> 804E 05 10 |or byte ptr [esi+5], 10
5CEA3982 |> 8A46 05 |mov al, byte ptr [esi+5]
5CEA3985 |. A8 08 |test al, 8
5CEA3987 |.^ 74 D7 \je short CXCentau.5CEA3960
5CEA3989 |> 56 push esi
5CEA398A |. FF37 push dword ptr [edi]
5CEA398C |. E8 3F93FFFF call CXCentau.5CE9CCD0
5CEA3991 |. 8B0B mov ecx, dword ptr [ebx]
5CEA3993 |. 8908 mov dword ptr [eax], ecx ; 这里写入HP
5CEA3995 |. 8B4B 04 mov ecx, dword ptr [ebx+4]
5CEA3998 |. 83C4 08 add esp, 8
5CEA399B |. 8948 04 mov dword ptr [eax+4], ecx
5CEA399E |. 807B 04 05 cmp byte ptr [ebx+4], 5
5CEA39A2 |. 72 04 jb short CXCentau.5CEA39A8
5CEA39A4 |. 8B03 mov eax, dword ptr [ebx]
5CEA39A6 |. FF00 inc dword ptr [eax]
5CEA39A8 |> 5F pop edi
5CEA39A9 |. 5E pop esi
5CEA39AA |. 8BC3 mov eax, ebx
....
....
搜索步骤
1:先查看人物遍历表, 得出线程指针
7C5F = AUTO _ WALK
FB1D = AROUNDD
5013 = USER.C
3BE0 = med.c = 人物信息表
5E69A930 /$ 55 push ebp
5E69A931 |. 8BEC mov ebp, esp
5E69A933 |. 81EC 04010000 sub esp, 104
5E69A939 |. A1 7006B25E mov eax, dword ptr [5EB20670]
5E69A93E |. 33C5 xor eax, ebp
5E69A940 |. 8945 FC mov dword ptr [ebp-4], eax
5E69A943 |. 57 push edi
5E69A944 |. 8B7D 08 mov edi, dword ptr [ebp+8]
5E69A947 |. 85FF test edi, edi
5E69A949 |. 75 11 jnz short CXCentau.5E69A95C
5E69A94B |. 33C0 xor eax, eax
5E69A94D |. 5F pop edi
5E69A94E |. 8B4D FC mov ecx, dword ptr [ebp-4]
5E69A951 |. 33CD xor ecx, ebp
5E69A953 |. E8 BC1B1D00 call CXCentau.5E86C514
5E69A958 |. 8BE5 mov esp, ebp
5E69A95A |. 5D pop ebp
5E69A95B |. C3 retn
5E69A95C |> F647 04 01 test byte ptr [edi+4], 1
5E69A960 |. 56 push esi
5E69A961 |. 8B75 0C mov esi, dword ptr [ebp+C]
5E69A964 |. 75 16 jnz short CXCentau.5E69A97C
5E69A966 |. FF77 14 push dword ptr [edi+14]
5E69A969 |. FF77 10 push dword ptr [edi+10]
5E69A96C |. E8 6F150000 call CXCentau.5E69BEE0
5E69A971 |. 8BD0 mov edx, eax
5E69A973 |. 83C4 08 add esp, 8
5E69A976 |. 85D2 test edx, edx
5E69A978 |. 74 3E je short CXCentau.5E69A9B8
5E69A97A |. EB 02 jmp short CXCentau.5E69A97E
5E69A97C |> 8BD7 mov edx, edi
5E69A97E |> 0FB74A 08 movzx ecx, word ptr [edx+8]
5E69A982 |. A1 08F6B55E mov eax, dword ptr [5EB5F608] ; 基地址
5E69A987 |. 66:03CE add cx, si
5E69A98A |. 81E1 FF3F0000 and ecx, 3FFF
5E69A990 |. 8B0C88 mov ecx, dword ptr [eax+ecx*4]
5E69A993 |. 85C9 test ecx, ecx
5E69A995 |. 74 21 je short CXCentau.5E69A9B8 d [[[5EB5F608]+3BE0*4]+2C]
5E69A997 |> 8B41 20 /mov eax, dword ptr [ecx+20] + 20] + 8] == 3BE0 /console/daemons/med.c
5E69A99A |. 3950 04 |cmp dword ptr [eax+4], edx
5E69A99D |. 75 12 |jnz short CXCentau.5E69A9B1
5E69A99F |. 3971 08 |cmp dword ptr [ecx+8], esi
5E69A9A2 |. 75 0D |jnz short CXCentau.5E69A9B1
5E69A9A4 |. F741 0C 00C00>|test dword ptr [ecx+C], 0C000
5E69A9AB |. 0F84 9E000000 |je CXCentau.5E69AA4F
5E69A9B1 |> 8B49 2C |mov ecx, dword ptr [ecx+2C]
5E69A9B4 |. 85C9 |test ecx, ecx ; xxxxx
5E69A9B6 |.^ 75 DF \jnz short CXCentau.5E69A997
5E69A9B8 |> 68 00010000 push 100
5E69A9BD |. 8D85 FCFEFFFF lea eax, dword ptr [ebp-104]
5E69A9C3 |. 50 push eax
5E69A9C4 |. 68 60578D5E push CXCentau.5E8D5760 ; ASCII ".c"
5E69A9C9 |. FF77 10 push dword ptr [edi+10]
5E69A9CC |. E8 6FD6FDFF call CXCentau.5E678040
5E69A9D1 |. 83C4 10 add esp, 10
5E69A9D4 |. 85C0 test eax, eax
5E69A9D6 |. 74 65 je short CXCentau.5E69AA3D
5E69A9D8 |. 8D8D FCFEFFFF lea ecx, dword ptr [ebp-104]
5E69A9DE |. 8D51 01 lea edx, dword ptr [ecx+1]
5E69A9E1 |> 8A01 /mov al, byte ptr [ecx]
5E69A9E3 |. 41 |inc ecx
5E69A9E4 |. 84C0 |test al, al
5E69A9E6 |.^ 75 F9 \jnz short CXCentau.5E69A9E1
5E69A9E8 |. 2BCA sub ecx, edx
5E69A9EA |. 51 push ecx
5E69A9EB |. 8D85 FCFEFFFF lea eax, dword ptr [ebp-104]
5E69A9F1 |. 50 push eax
5E69A9F2 |. E8 E9140000 call CXCentau.5E69BEE0
5E69A9F7 |. 8BD0 mov edx, eax
5E69A9F9 |. 83C4 08 add esp, 8
5E69A9FC |. 85D2 test edx, edx
5E69A9FE |. 74 3D je short CXCentau.5E69AA3D
5E69AA00 |. 3BD7 cmp edx, edi
5E69AA02 |. 74 39 je short CXCentau.5E69AA3D
5E69AA04 |. 0FB74A 08 movzx ecx, word ptr [edx+8]
5E69AA08 |. A1 08F6B55E mov eax, dword ptr [5EB5F608]
5E69AA0D |. 66:03CE add cx, si
5E69AA10 |. 81E1 FF3F0000 and ecx, 3FFF
5E69AA16 |. 8B0C88 mov ecx, dword ptr [eax+ecx*4] ; 获取人物指针
5E69AA19 |. 85C9 test ecx, ecx
5E69AA1B |. 74 20 je short CXCentau.5E69AA3D
5E69AA1D |. 8D49 00 lea ecx, dword ptr [ecx]
5E69AA20 |> 8B41 20 /mov eax, dword ptr [ecx+20]
5E69AA23 |. 3950 04 |cmp dword ptr [eax+4], edx
5E69AA26 |. 75 0E |jnz short CXCentau.5E69AA36
5E69AA28 |. 3971 08 |cmp dword ptr [ecx+8], esi
5E69AA2B |. 75 09 |jnz short CXCentau.5E69AA36
5E69AA2D |. F741 0C 00C00>|test dword ptr [ecx+C], 0C000
5E69AA34 |. 74 19 |je short CXCentau.5E69AA4F
5E69AA36 |> 8B49 2C |mov ecx, dword ptr [ecx+2C]
5E69AA39 |. 85C9 |test ecx, ecx
5E69AA3B |.^ 75 E3 \jnz short CXCentau.5E69AA20
5E69AA3D |> 5E pop esi
5E69AA3E |. 33C0 xor eax, eax
5E69AA40 |. 5F pop edi
5E69AA41 |. 8B4D FC mov ecx, dword ptr [ebp-4]
5E69AA44 |. 33CD xor ecx, ebp
5E69AA46 |. E8 C91A1D00 call CXCentau.5E86C514
5E69AA4B |. 8BE5 mov esp, ebp
5E69AA4D |. 5D pop ebp
5E69AA4E |. C3 retn
5E69AA4F |> 8BC1 mov eax, ecx
5E69AA51 |. 8B4D FC mov ecx, dword ptr [ebp-4]
5E69AA54 |. 5E pop esi
5E69AA55 |. 33CD xor ecx, ebp
5E69AA57 |. 5F pop edi
5E69AA58 |. E8 B71A1D00 call CXCentau.5E86C514
5E69AA5D |. 8BE5 mov esp, ebp
5E69AA5F |. 5D pop ebp
5E69AA60 \. C3 retn
信么? 就这些分析了15天..
存表位置找到了, 通过代码遍历
void GetCharTable(DWORD dwBase)
{
if ( dwBase == 0 )
return;
int iCount = ReadDword(dwBase + 0x0C);
dwBase = ReadDword(dwBase + 0x18);
if ( dwBase != 0 )
{
for ( int i = 0; i <= iCount; i ++ )
{
DWORD dwAddr = ReadDword(dwBase + i * 4);
if ( dwAddr != 0 )
{
DWORD dwTime = GetTickCount();
DWORD dwWhile = dwAddr;
while ( dwWhile != 0 )
{
DWORD dwPoint = ReadDword(dwWhile + 4);
DWORD dwIndex = 0;
char szText[0x100] = {0};
if ( dwPoint != 0 )
{
DWORD dwName = ReadDword(dwPoint + 0x10);
if ( dwName != 0 )
lstrcpyA(szText, (char *)(dwName));
dwIndex = ReadDword(dwPoint + 0x8);
DWORD dwValue = ReadDword(dwWhile + 0x0C);
DbgPrintA("索引:%02X ID:%04X 值:%08X 表名:%s", i, dwIndex, dwValue, szText);
}
if ( GetTickCount() - dwTime > 3000 )
{
break;
}
dwWhile = ReadDword(dwWhile);
}
}
}
}
}
DWORD dwMod = (DWORD)GetModuleHandleA("CXCentaur.dll");
if ( dwMod == 0 )
return;
DWORD dwStart = ReadDword(dwMod + g_dwGameBase);
if ( dwStart != 0 )
{
for ( int i = 0; i < 0x3FFF; i ++ )
{
DWORD dwBase = ReadDword(dwStart + i * 4);
if ( dwBase != 0 )
{
DWORD dwTimeout = GetTickCount();
while ( TRUE )
{
DWORD dw20 = ReadDword(dwBase + 0x20);
DWORD dw24 = ReadDword(dwBase + 0x24);
if ( dw20 != 0 )
{
DWORD dw20_4 = ReadDword(dw20 + 4);
if ( dw20_4 != 0)
{
DWORD dw20_4_8 = ReadDword(dw20_4 + 0x8);
DWORD dw20_4_10 = ReadDword(dw20_4 + 0x10);
if ( dw20_4_8 == 0x3BE0 )
{
DbgPrintA("BASE:%08X 名称指针:%08X 指针:%08X ID:%08X 名称:%s", dwBase, dw20, dw24, dw20_4_8, (char *)(dw20_4_10));
GetCharTable(ReadDword(dw24 + 6 * 8));
}
}
}
dwBase = ReadDword(dwBase + 0x2C);
if ( dwBase == 0 )
break;
}
}
}
}
人物信息不做过滤 完整的表项如下
索引:00 ID:6800 值:00000000 表名:xl_level
索引:00 ID:B200 值:00000000 表名:jishashenjiang_assigned
索引:01 ID:EF01 值:1FA9240C 表名:achievement
索引:05 ID:9805 值:00000307 表名:gang_contrib
索引:06 ID:8E06 值:0014305E 表名:exp
索引:08 ID:4708 值:00000000 表名:relive
索引:09 ID:9409 值:1FA929EC 表名:enemy
索引:09 ID:7E09 值:1FA9238C 表名:extra_namecard_para
索引:0C ID:D20C 值:00000000 表名:tianyaobuluo_kill
索引:0C ID:140C 值:00000000 表名:plunder_war_data
索引:0E ID:F30E 值:381EFC2C 表名:cd_skills
索引:0E ID:E60E 值:00000000 表名:relive_chances
索引:0F ID:840F 值:00000000 表名:family_task_info
索引:0F ID:3F0F 值:00000000 表名:account_coin
索引:10 ID:2410 值:00000000 表名:newbie_task
索引:10 ID:0E10 值:00000001 表名:vip_level
索引:10 ID:DB10 值:00000000 表名:dadaozhengxiong_schedule
索引:12 ID:3012 值:00000000 表名:wonderland_prepare_to_end
索引:12 ID:D112 值:00000000 表名:douqi
索引:13 ID:6913 值:00000000 表名:arena
索引:14 ID:6914 值:1FA92D8C 表名:condition
索引:14 ID:FA14 值:0000466F 表名:default_cast_skill_id
索引:14 ID:2E14 值:1F756D24 表名:shortcuts
索引:18 ID:6218 值:1FBB94D0 表名:jid
索引:18 ID:F618 值:1FA2FBB0 表名:rid
索引:19 ID:7219 值:00000002 表名:thread
索引:1B ID:681B 值:000000BF 表名:home_point
索引:1B ID:561B 值:00000000 表名:gt_camp_id
索引:1E ID:FD1E 值:1FB4DED4 表名:vip_profit
索引:1E ID:651E 值:1FA9280C 表名:traffic_walk_be_follow
索引:21 ID:8D21 值:00000000 表名:traffic_paused
索引:21 ID:D821 值:49243890 表名:icon_no
索引:22 ID:6422 值:00000000 表名:transparent_value
索引:22 ID:D822 值:00000001 表名:active
索引:24 ID:2E24 值:00000000 表名:round_task_info
索引:25 ID:3825 值:00000000 表名:backup_skills
索引:26 ID:4C26 值:00000000 表名:arena_record
索引:27 ID:0F27 值:00000000 表名:no_guard_monsters
索引:29 ID:7D29 值:00000000 表名:pk_target
索引:2A ID:022A 值:1FA62270 表名:guide
索引:2B ID:7D2B 值:04724BF9 表名:last_keep_distance_lntp_time
索引:2C ID:F72C 值:000000E4 表名:direction
索引:2C ID:9E2C 值:00000000 表名:arena_enroll
索引:2D ID:312D 值:1FA92E4C 表名:current_rank
索引:2E ID:242E 值:0000001B 表名:lntp_latency
索引:2E ID:3E2E 值:00000000 表名:score
索引:30 ID:A830 值:00000000 表名:hide_helmet
索引:30 ID:BC30 值:00000000 表名:arena_camp_id
索引:32 ID:6532 值:1FB10CFC 表名:cd_items_start
索引:33 ID:FB33 值:00000000 表名:quit_gang_time
索引:34 ID:2C34 值:00000000 表名:arena_accumulate_point
索引:35 ID:7135 值:18225A50 表名:action
索引:37 ID:2F37 值:00000000 表名:battlefield_state
索引:38 ID:0138 值:00000000 表名:teleport_point
索引:3B ID:203B 值:00000000 表名:week_popular
索引:3C ID:5B3C 值:1FA925AC 表名:team
索引:3C ID:7B3C 值:00000000 表名:collection_npcs
索引:3D ID:723D 值:00000000 表名:expert
索引:49 ID:6149 值:00000029 表名:level
索引:49 ID:A849 值:00000000 表名:dianfengduijue_processing
索引:4A ID:5D4A 值:1FA62E10 表名:current_talking_npc
索引:4B ID:E24B 值:0000021F 表名:sum_silver_coin
索引:4D ID:D24D 值:00000001 表名:user_camp
索引:4D ID:F34D 值:000002BD 表名:total_douqi
索引:4E ID:474E 值:1FA9324C 表名:seal_break_info
索引:4F ID:664F 值:00000000 表名:newdist_feedback
索引:4F ID:424F 值:00000000 表名:stall_record
索引:4F ID:C84F 值:1FA9935C 表名:my_party_info
索引:51 ID:B451 值:00000000 表名:to_be_delete
索引:51 ID:3E51 值:00000050 表名:gang_station
索引:56 ID:DE56 值:00000000 表名:all_area_triggers_ex
索引:57 ID:EA57 值:311AD274 表名:gang_relations
索引:58 ID:0958 值:00000000 表名:deconnected_time
索引:5D ID:D55D 值:00000000 表名:druglist
索引:5F ID:F35F 值:00000000 表名:tournament_state
索引:60 ID:7460 值:381EFC6C 表名:cd_skills_start
索引:60 ID:5360 值:00000000 表名:halo
索引:60 ID:A460 值:1FA9236C 表名:skills 技能列表
索引:62 ID:4262 值:00000000 表名:money_situ_relive
索引:62 ID:C062 值:00000000 表名:tournament
索引:63 ID:E663 值:000EA632 表名:xw
索引:63 ID:6C63 值:00000000 表名:shortcuts_ex
索引:64 ID:0C64 值:006D6722 表名:last_get_rt_relation_tick
索引:65 ID:E765 值:00000000 表名:emote_group
索引:68 ID:4E68 值:0001BA8E 表名:bind_money 绑定金钱
索引:69 ID:4669 值:49240320 表名:pos 坐标 XYZ
索引:6A ID:216A 值:1FA31000 表名:domain_address
索引:6A ID:B06A 值:1FA61D00 表名:in_territory_war
索引:6A ID:9B6A 值:00000000 表名:battlefield
索引:6A ID:136A 值:00000000 表名:relive_time_limit
索引:6D ID:396D 值:1FA61F10 表名:brother_task_state
索引:6D ID:876D 值:00000000 表名:dex
索引:71 ID:A571 值:1FA92E6C 表名:coins
索引:73 ID:6973 值:1FA62B40 表名:dist
索引:74 ID:CD74 值:00000000 表名:extra_multi_bonus_points
索引:77 ID:1C77 值:00001501 表名:hp
索引:77 ID:0677 值:00002710 表名:xp
索引:77 ID:3D77 值:00000902 表名:mp
索引:79 ID:3B79 值:1FA928EC 表名:personal_container 个人的容器
索引:7A ID:0E7A 值:1FA9290C 表名:xw_level
索引:7E ID:777E 值:1FB4E254 表名:cd_item_group
索引:81 ID:6881 值:00000002 表名:equip_suit_count 装备套装统计
索引:81 ID:5181 值:1FA92A4C 表名:remove_ps_item
索引:82 ID:C482 值:00000000 表名:no_select 没选择
索引:83 ID:4F83 值:1FB1164C 表名:properties 属性
索引:83 ID:A083 值:00000000 表名:change_expert_times
索引:84 ID:A984 值:1FA92A8C 表名:jabber 登录名
索引:84 ID:E484 值:27D48044 表名:container_size
索引:85 ID:C585 值:00000000 表名:property_security
索引:87 ID:BB87 值:00000001 表名:hold_appear
索引:89 ID:C589 值:000002BD 表名:douhun
索引:89 ID:3089 值:00000000 表名:location
索引:89 ID:FE89 值:1FA92AAC 表名:life_skill_info
索引:8A ID:628A 值:1A5B3D0C 表名:improvement
索引:8B ID:C48B 值:1FA61520 表名:node_ip
索引:8C ID:638C 值:00000505 表名:see
索引:8D ID:7B8D 值:00000000 表名:exchange_feedback
索引:8E ID:928E 值:00000000 表名:debug_close_apex_client
索引:8F ID:4C8F 值:00000000 表名:pk_mode PK模式
索引:91 ID:7291 值:00000000 表名:gang_territory_war
索引:92 ID:8B92 值:1FB4DFD4 表名:cd_items
索引:93 ID:4E93 值:00000000 表名:buy_limit
索引:94 ID:7094 值:534802F0 表名:comrades
索引:95 ID:0595 值:1FA621B0 表名:family 家族
索引:95 ID:5395 值:1FA926AC 表名:flight_point
索引:97 ID:C897 值:1FA62030 表名:next_graduate_task
索引:98 ID:2D98 值:42E143EC 表名:threat_monsters
索引:9B ID:149B 值:1FA923CC 表名:stall 摊位
索引:9C ID:BC9C 值:00000004 表名:relive_point
索引:9D ID:5A9D 值:4819F8BC 表名:mount
索引:9F ID:569F 值:1FA92DCC 表名:status_info
索引:9F ID:DB9F 值:1FBA8854 表名:model
索引:A0 ID:6BA0 值:00000000 表名:camp_id
索引:A1 ID:6DA1 值:1FA924EC 表名:task_bonus
索引:A1 ID:F5A1 值:00000000 表名:join_challenge
索引:A4 ID:C0A4 值:1FA619D0 表名:current_target
索引:A6 ID:7FA6 值:00000000 表名:arena_win_ratio
索引:A8 ID:D3A8 值:00000000 表名:stall_assemble
索引:A8 ID:64A8 值:00000000 表名:multi_bonus_st
索引:A9 ID:05A9 值:00000000 表名:kunxudao_bomb
索引:AA ID:A9AA 值:00000000 表名:honor
索引:AB ID:79AB 值:1FA92A6C 表名:security_time
索引:AD ID:45AD 值:1FBA883C 表名:equip_effect
索引:B0 ID:CAB0 值:00000000 表名:stall_purchase
索引:B0 ID:88B0 值:00000000 表名:wiz
索引:B1 ID:24B1 值:00000000 表名:total_pk
索引:B1 ID:9EB1 值:00000000 表名:str
索引:B4 ID:16B4 值:00000000 表名:followers
索引:B6 ID:64B6 值:381EFC0C 表名:cd_skill_group
索引:B6 ID:CFB6 值:1FB4E634 表名:union_relations
索引:B9 ID:39B9 值:1FA61AF0 表名:wanted_target
索引:B9 ID:68B9 值:00000001 表名:current_equip_suit
索引:BC ID:9FBC 值:2747DC04 表名:temp_guide
索引:BD ID:3DBD 值:31F1A15C 表名:status
索引:BE ID:E7BE 值:00000001 表名:gender
索引:BF ID:D8BF 值:00000000 表名:friend
索引:C0 ID:D2C0 值:458C91D8 表名:talisman_offset
索引:C0 ID:9BC0 值:00000000 表名:start_competition
索引:C1 ID:41C1 值:1FB4DF54 表名:avatar_info
索引:C2 ID:FCC2 值:00000000 表名:anger
索引:C4 ID:34C4 值:00000000 表名:join_wedding
索引:C5 ID:FEC5 值:00000000 表名:in_owne_wedding_room
索引:C5 ID:08C5 值:00000000 表名:evil
索引:C5 ID:50C5 值:00000000 表名:last_lottery_time
索引:C8 ID:26C8 值:00000000 表名:tournament_camp_id
索引:C9 ID:50C9 值:1FB1167C 表名:property_pattern
索引:C9 ID:B4C9 值:52864500 表名:newdist_start_time
索引:CA ID:69CA 值:00005A88 表名:money 钱
索引:CC ID:B2CC 值:00000000 表名:give_life_info
索引:CD ID:79CD 值:1FA9292C 表名:shop_times
索引:CE ID:A1CE 值:00000000 表名:wonderland_start_time
索引:D0 ID:63D0 值:00000001 表名:rt_union_relations
索引:D0 ID:ECD0 值:1FA62C60 表名:completed_easy_task
索引:D1 ID:DED1 值:1FABD188 表名:name
索引:D7 ID:6DD7 值:1FA92E0C 表名:rank_info
索引:DA ID:CADA 值:1FA9274C 表名:completion_events
索引:DA ID:AEDA 值:38DE9DB4 表名:npc_visible
索引:DA ID:D1DA 值:00000000 表名:be_halo
索引:DC ID:64DC 值:1FA9286C 表名:completed_instances
索引:DC ID:2DDC 值:534802F0 表名:proficient_skills
索引:DD ID:B2DD 值:4961A5BC 表名:expendable_see
索引:DF ID:EDDF 值:1FA9282C 表名:room_object_status
索引:DF ID:F7DF 值:00000000 表名:lingxiaotai_keepsake
索引:DF ID:54DF 值:00000000 表名:fuqi_points
索引:E0 ID:AFE0 值:1FA927EC 表名:last_comp_events
索引:E1 ID:86E1 值:00000000 表名:popular
索引:E6 ID:43E6 值:1A5B249C 表名:gang 帮派表
索引:E8 ID:93E8 值:00000000 表名:month_exchange_silver_coin
索引:EA ID:94EA 值:00000001 表名:cd_skills_ok
索引:EA ID:06EA 值:00000000 表名:fashion_hide_equip_effect
索引:EE ID:92EE 值:00000000 表名:level_bonus
索引:F0 ID:71F0 值:00000000 表名:multi_bonus_cost
索引:F3 ID:B0F3 值:00002710 表名:max_xp
索引:F3 ID:52F3 值:00000000 表名:exp_ex
索引:F4 ID:BDF4 值:1FA62150 表名:fashion_id
索引:F5 ID:5FF5 值:00000000 表名:gang_war
索引:F5 ID:19F5 值:00000000 表名:summon 召唤
索引:F7 ID:57F7 值:00000000 表名:shenwei
索引:F7 ID:B6F7 值:1FA61B50 表名:event_record
索引:F8 ID:75F8 值:00000000 表名:battlefield_enroll_wait
索引:F9 ID:83F9 值:1FA61C70 表名:wp_status
索引:F9 ID:67F9 值:1D4E9470 表名:pose
索引:FA ID:A0FA 值:00000002 表名:last_get_rt_relation_result
索引:FA ID:C6FA 值:00000002 表名:type 类型
索引:FA ID:F1FA 值:1FA923EC 表名:talisman
索引:FA ID:CEFA 值:00000000 表名:stall_auto_logout
索引:FB ID:35FB 值:00000000 表名:express_money
索引:FD ID:D3FD 值:1FB4E1B4 表名:relation_rank_name
索引:FD ID:D1FD 值:000007D0 表名:life
然后根据自己需要的表项去取信息,当我人物信息搞定后,我开始着手取任务信息.
任务名称ID = 126F
任务内存
41F99D34 02 00 00 00 07 00 00 00 01 00 00 00 1F 00 00 00 ............
41F99D44 0A 00 00 00 11 00 00 00 28 08 5D 3F C0 8E F9 41 .......(]?缼鵄
神兵之继承 = task/easy_task_8027@69HXFH39Y7F3
任务取项
BASE:18E7B4CC 名称指针:19134298 指针:17E924A8 ID:0000F8E2 名称:/console/daemons/taskd.c
38DE1D14 dwValue:389532B8 easy_task_8024@69HXFH39Y7F3 法宝之炼化
38412D2C dwValue:38955A68 easy_task_20009@69HXFH39Y7F3 凄美雪狐
3847D2F4 dwValue:1FADFBE8 easy_task_20014@69HXFH39Y7F3 切磋修为
1FACC434 dwValue:1FABE808 easy_task_20007@69HXFH39Y7F3 大仙的贡品
1FA9228C dwValue:38956B48 easy_task_10046@69HXFH39Y7F3 再获真图
1A5AF4AC dwValue:389584E8 easy_task_8027@69HXFH39Y7F3 神兵之继承
任务值项
索引:05 ID:4DE5 值:00000000 表名:can_shared 可以共享
索引:06 ID:A506 值:43239EFC 表名:final_bonus 最后奖金
索引:0A ID:14CA 值:3BDB85D8 表名:log 任务目标 例:战胜那些守卫血影狐仙的<eg user_data="room:12,633-520-0">#X三尾雪狐#n</eg><br/>三尾雪狐:8/12
索引:0B ID:1BAB 值:00000000 表名:finish_time 完成时间
索引:0C ID:DA8C 值:450D2058 表名:short_log 没用
索引:0C ID:0FEC 值:00000120 表名:task_npc 任务NPC
索引:0D ID:C48D 值:38412E0C 表名:bonus 分数
索引:11 ID:DED1 值:38955A68 表名:name 任务名称
索引:11 ID:05F1 值:00000000 表名:can_complete 是否完成
索引:13 ID:0073 值:00000000 表名:can_be_give_up 能否放弃
索引:13 ID:6953 值:4323953C 表名:total 一个计量单位 目前作用未知
索引:14 ID:C794 值:00000000 表名:is_new_task 是新任务
索引:15 ID:3B95 值:383E7720 表名:desc 任务描述
索引:18 ID:F618 值:389505B8 表名:rid easy_task_XXXXXX
索引:1A ID:C6FA 值:3894FED8 表名:type 任务类型 (支线任务) 字符串
索引:1A ID:BA5A 值:432398BC 表名:amount this -> + 18 = 任务要求的数量
索引:1B ID:05FB 值:00000003 表名:sub_task_id 任务当前索引(int)
索引:1C ID:B09C 值:00000000 表名:last_time 最后一次?
索引:1F ID:04FF 值:00004E29 表名:task_id 任务ID
流程
/console/daemons/taskd.c 取指针 = BASE
D [[[[[BASE]+18]+递归取 TASK 项]+0C]+18]+0*4 = 每个任务
D [[[[[BASE]+18]+4]+0C]+18]+0*4
↓
[BASE] = 表项
↓
[[BASE] + 18] = 递归取值TASK 项 取指针
↓
[取指针]
↓
[指针 + 18] = 任务项
然后递归取出每个任务的信息
60869B30 /$ 55 push ebp
60869B31 |. 8BEC mov ebp, esp
60869B33 |. 8B45 08 mov eax, dword ptr [ebp+8]
60869B36 |. 53 push ebx
60869B37 |. 8B48 14 mov ecx, dword ptr [eax+14]
60869B3A |. 56 push esi
60869B3B |. 57 push edi
60869B3C |. 8B7D 0C mov edi, dword ptr [ebp+C]
60869B3F |. 894D 08 mov dword ptr [ebp+8], ecx
60869B42 |. 8B77 14 mov esi, dword ptr [edi+14]
60869B45 |. 56 push esi
60869B46 |. 50 push eax ; [eax+8]==126F = 任务名称
60869B47 |. E8 64FFFFFF call CXCentau.60869AB0
60869B4C |. 8BD8 mov ebx, eax
60869B4E |. 8D4E 01 lea ecx, dword ptr [esi+1]
60869B51 |. 0173 14 add dword ptr [ebx+14], esi
60869B54 |. 51 push ecx ; /n
60869B55 |. 8B4B 10 mov ecx, dword ptr [ebx+10] ; |
60869B58 |. FF77 10 push dword ptr [edi+10] ; |src
60869B5B |. 034D 08 add ecx, dword ptr [ebp+8] ; |
60869B5E |. 51 push ecx ; |dest
60869B5F |. E8 981F1D00 call <jmp.&MSVCR110.memcpy> ; \memcpy
60869B64 |. 83C4 14 add esp, 14
60869B67 |. 8BC3 mov eax, ebx
60869B69 |. 5F pop edi
60869B6A |. 5E pop esi
60869B6B |. 5B pop ebx
60869B6C |. 5D pop ebp
60869B6D \. C3 retn
53018D30 . A1 70456A53 mov eax, dword ptr [536A4570]
53018D35 . 8B40 04 mov eax, dword ptr [eax+4]
53018D38 . 83F8 02 cmp eax, 2
53018D3B . 7F 52 jg short CXCentau.53018D8F
53018D3D . 56 push esi
53018D3E . 6A 05 push 5
53018D40 . 6A 00 push 0
53018D42 . E8 D989FDFF call CXCentau.52FF1720
53018D47 . 6A 07 push 7
53018D49 . 6A 01 push 1
53018D4B . 8BF0 mov esi, eax
53018D4D . E8 CE89FDFF call CXCentau.52FF1720
53018D52 . 50 push eax
53018D53 . 56 push esi
53018D54 . E8 97D2FDFF call CXCentau.52FF5FF0 看ESP的值指向 然后搜索整个表内指针是否符合
53018D59 . 83C4 18 add esp, 18
53018D5C . 5E pop esi
53018D5D . 85C0 test eax, eax
53018D5F . 75 15 jnz short CXCentau.53018D76
53018D61 . A1 70456A53 mov eax, dword ptr [536A4570]
53018D66 . FF70 04 push dword ptr [eax+4]
53018D69 . E8 1290FDFF call CXCentau.52FF1D80
53018D6E . 83C4 04 add esp, 4
53018D71 .^ E9 1A98FDFF jmp CXCentau.52FF2590
53018D76 > 50 push eax ; 1FF446A8 找到这里看
53018D77 . E8 A498FDFF call CXCentau.52FF2620
53018D7C . A1 70456A53 mov eax, dword ptr [536A4570]
53018D81 . FF70 04 push dword ptr [eax+4]
53018D84 . 6A 01 push 1
53018D86 . E8 059CFDFF call CXCentau.52FF2990
53018D8B . 83C4 0C add esp, 0C
53018D8E . C3 retn
53018D8F > 68 28A12453 push CXCentau.5324A128 ; ASCII "express_query"
53018D94 . 50 push eax
53018D95 . 68 9C4F3653 push CXCentau.53364F9C ; ASCII "Too many arguments(%d) to %s.",LF
53018D9A . E8 F1C7FDFF call CXCentau.52FF5590
53018D9F . CC int3
53018DA0 . A1 70456A53 mov eax, dword ptr [536A4570]
53018DA5 . 8B40 04 mov eax, dword ptr [eax+4]
53018DA8 . 83F8 03 cmp eax, 3
53018DAB . 7F 42 jg short CXCentau.53018DEF
53018DAD . 56 push esi
53018DAE . 57 push edi
53018DAF . 6A 05 push 5
53018DB1 . 6A 00 push 0
53018DB3 . E8 6889FDFF call CXCentau.52FF1720
53018DB8 . 6A 07 push 7
53018DBA . 6A 01 push 1
53018DBC . 8BF8 mov edi, eax
53018DBE . E8 5D89FDFF call CXCentau.52FF1720
53018DC3 . 68 FF000000 push 0FF
53018DC8 . 6A 02 push 2
53018DCA . 8BF0 mov esi, eax
53018DCC . E8 4F89FDFF call CXCentau.52FF1720
53018DD1 . 83C4 18 add esp, 18
53018DD4 . F646 05 02 test byte ptr [esi+5], 2
53018DD8 . 75 25 jnz short CXCentau.53018DFF
53018DDA . 50 push eax
// 获得任务列表
void CTaskMgr::GetTaskList( DWORD dwBase )
{
int iCount = ReadDword(dwBase + 0x0C);
DWORD dwStart = ReadDword(dwBase + 0x18);
if ( dwStart != 0 && iCount > 0 )
{
for ( int i = 0; i <= iCount; i ++ )
{
DWORD dwAddr = ReadDword(dwStart + i * 4);
if ( dwAddr != 0 )
{
while ( dwAddr != 0 )
{
DWORD dwPoint = ReadDword(dwAddr + 4);
if ( dwPoint != 0 )
{
TASK_INFO TI = {0};
char szText[0x500] = {0};
TI.dwBase = ReadDword(dwAddr + 0x0C);
TI.bCanbeShared = GetListItemNameByValue(TI.dwBase, "can_shared");
dwBase = GetListItemNameByValue(TI.dwBase, "log");
memset(szText, 0, sizeof(szText));
GetText(dwBase, szText);
lstrcpyA(TI.szLog, szText);
TI.dwNpcSID = GetListItemNameByValue(TI.dwBase, "task_npc");
dwBase = GetListItemNameByValue(TI.dwBase, "name");
memset(szText, 0, sizeof(szText));
GetText(dwBase, szText);
lstrcpyA(TI.szName, szText);
TI.bCanComplete = GetListItemNameByValue(TI.dwBase, "can_complete");
TI.bCanGiveUp = GetListItemNameByValue(TI.dwBase, "can_be_give_up");
TI.bIsNew = GetListItemNameByValue(TI.dwBase, "is_new_task");
dwBase = GetListItemNameByValue(TI.dwBase, "rid");
memset(szText, 0, sizeof(szText));
GetText(dwBase, szText);
lstrcpyA(TI.szRID, szText);
dwBase = GetListItemNameByValue(TI.dwBase, "type");
memset(szText, 0, sizeof(szText));
GetText(dwBase, szText);
lstrcpyA(TI.szType, szText);
TI.iCurIndex = GetListItemNameByValue(TI.dwBase, "sub_task_id");
TI.dwSID = GetListItemNameByValue(TI.dwBase, "task_id");
m_TaskList.push_back(TI);
}
dwAddr = ReadDword(dwAddr);
}
}
}
}
}
实际上还是查表, 这是我写分析,单独一个数据写的代码最多的玩意了..里面还调用了其他文件 我就不一一放上来了..
紧接着..我开始分析功能..他妈的 啥都找不着??怎么回事了..难道连CALL都在这个表项里面?? 答案是:没错,就在表项里..
寻路CALL. 有一个表项, 你要在这个表项里的内存X, Y, Z内写入坐标与开始寻路标志, 游戏就他妈的自己走起来了..这还玩毛阿..
不过当时是记在脑子里 给忘记是怎么实现的了, 所以这里就不再描述这个玩意了.
我们继续...
我开始分析人物的各种动作信息, 比如跳跃, 结果我发现, 我他妈可以在空中呆着.而且我打得到怪 怪打不到我 这不是变相无敌了??
543BEE38 |. 8B4F 14 mov ecx, dword ptr [edi+14]
543BEE3B |. 68 16010000 push 116
543BEE40 |. FFD6 call esi
543BEE42 |. 8B4F 14 mov ecx, dword ptr [edi+14]
543BEE45 |. 68 1A010000 push 11A
543BEE4A |. FFD6 call esi
543BEE4C |. FF77 04 push dword ptr [edi+4]
543BEE4F |. FF15 70B93E54 call dword ptr [<&root_class.Gbits::GRootClass::CHFindClass>] ; root_cla.Gbits::GRootClass::CHFindClass
543BEE55 |. 8B10 mov edx, dword ptr [eax]
543BEE57 |. 83C4 04 add esp, 4
543BEE5A |. 8D4F 30 lea ecx, dword ptr [edi+30] ; 跳跃, 将ECX内的Z值改大, 将在空中不落下来, 具体情况我还是忘记了..
543BEE5D |. 51 push ecx
543BEE5E |. 8BC8 mov ecx, eax
543BEE60 |. FF52 54 call dword ptr [edx+54]
543BEE63 |. 5E pop esi
543BEE64 |. 5F pop edi
543BEE65 |. 8B4D F4 mov ecx, dword ptr [ebp-C]
543BEE68 |. 64:890D 00000>mov dword ptr fs:[0], ecx
543BEE6F |. 8BE5 mov esp, ebp
543BEE71 |. 5D pop ebp
543BEE72 |. C3 retn
543BEE73 |> 8B4D F4 mov ecx, dword ptr [ebp-C]
543BEE76 |. C647 0C 01 mov byte ptr [edi+C], 1
543BEE7A |. 5F pop edi
543BEE7B |. 64:890D 00000>mov dword ptr fs:[0], ecx
543BEE82 |. 8BE5 mov esp, ebp
543BEE84 |. 5D pop ebp
543BEE85 \. C3 retn
再后来, 这游戏设计有隐患, 我发现了..游戏内的元宝飞行, 如果飞起来->小退->进游戏->马上就到达目的地了, 这就是变相的实现瞬移了(希望游戏公司别来找我麻烦哦..小弟我纯粹是研究学习而已)
再来看看背包..不再阐述了
整个游戏的物品都在这个表内
BASE:1C54C10C 名称指针:19A9A638 指针:1C4ED010 ID:00002C12 名称:/console/clone/misc/item.c
i: 3062 BASE:416F6F3C 名称指针:194E3818 指针:41720A78 ID:00002C12 名称:/console/clone/misc/item.c
位置 背包物品 = 1-0-x
任务物品 = 151-0-x
装备物品 = 0-0-x
晶石物品 = 10-0-x 绑定金元宝
法宝物品 = 3-0-0
回收物品 = 9-0-x
穿装备的
4D 5A 00 00 00 33 0A 80 00 22 01 1D 0C 36 39 4A
4D 45 4A 33 36 30 48 32 53 0C 36 39 48 58 46 48
33 39 59 37 46 33 05 30 2D 30 2D 32
4D 5A 00 00 00 33 82 EA 00 22 01 1D 0C 36 39 4A
4B 55 4C 33 36 30 46 57 48 0C 36 39 48 59 39 41
33 39 59 37 53 33 05 30 2D 30 2D 30
索引:00 ID:8AE0 值:00000000 表名:apply_script
索引:01 ID:5701 值:1B7444E0 表名:cooldown_script
索引:03 ID:F8E3 值:1B744510 表名:unit
索引:04 ID:4824 值:00000012 表名:item_type
索引:06 ID:36E6 值:1B744540 表名:use_desc
索引:06 ID:88A6 值:00000BBB 表名:apply_desc_script
索引:0A ID:A44A 值:1B744570 表名:market_type
索引:0A ID:EBEA 值:00007D14 表名:class_id
索引:0A ID:55EA 值:00000000 表名:effect_id
索引:0C ID:7FAC 值:00007D14 表名:icon
索引:0D ID:3B2D 值:1B7445A0 表名:cooldown_arg
索引:0D ID:61ED 值:1B7445D0 表名:tooltip_id
索引:0D ID:852D 值:1B6A4D60 表名:special_apply
索引:0E ID:716E 值:00000BC9 表名:desc_prefix_script
索引:11 ID:DED1 值:1B6A4DB0 表名:name
索引:11 ID:D2F1 值:00000014 表名:max_flight_times
索引:12 ID:0B12 值:00000000 表名:use_desc_script
索引:13 ID:9FD3 值:00000001 表名:teleport_task
索引:13 ID:4253 值:1B744600 表名:payment_type
索引:15 ID:7415 值:000000C5 表名:color
索引:15 ID:3B95 值:1B104130 表名:desc
索引:15 ID:7135 值:00000016 表名:action
索引:15 ID:59B5 值:00000000 表名:apply_arg
索引:18 ID:1858 值:1B771164 表名:effect_arg
索引:18 ID:EC98 值:1B771144 表名:sell_price
索引:19 ID:D419 值:00000003 表名:arrange_type
索引:19 ID:CA99 值:00000011 表名:apply
索引:1A ID:BA5A 值:00000001 表名:amount
索引:1A ID:C6FA 值:00000010 表名:type
索引:1B ID:669B 值:00000000 表名:mall_type
索引:1D ID:E37D 值:1B6A4E00 表名:alias
索引:1E ID:8B3E 值:1B744690 表名:goods_maintype
索引:1F ID:E63F 值:00000000 表名:short_desc_script
索引:1F ID:08BF 值:00000000 表名:combined
索引:1F ID:42FF 值:1B771184 表名:buy_price
索引:1F ID:D09F 值:1B7446F0 表名:goods_type
索引0 为 security 时为需要遍历的背包物品
这个是背包物品信息指针
索引:00 ID:F618 值:200226C8 表名:rid
索引:00 ID:8848 值:20026014 表名:security
索引:01 ID:4669 值:34405AF0 表名:pos
索引:02 ID:216A 值:1FFC5C58 表名:domain_address
索引:02 ID:EBEA 值:0000A09C 表名:class_id
索引:02 ID:BA5A 值:00000001 表名:amount
索引:02 ID:C6FA 值:00000010 表名:type
索引:07 ID:3D77 值:00000000 表名:mp
索引:07 ID:1C77 值:000008F1 表名:hp
现金HP药
索引:00 ID:F618 值:200226C8 表名:rid
索引:00 ID:8848 值:20026014 表名:security
索引:01 ID:4669 值:34405AF0 表名:pos
索引:07 ID:3D77 值:00000000 表名:mp
索引:07 ID:1C77 值:000001D5 表名:hp
现金MP
索引:00 ID:F618 值:41EA1918 表名:rid
索引:01 ID:4669 值:34403480 表名:pos
索引:02 ID:216A 值:3F54F848 表名:domain_address
索引:02 ID:EBEA 值:0000A09D 表名:class_id
索引:02 ID:BA5A 值:00000001 表名:amount
索引:02 ID:C6FA 值:00000010 表名:type
索引:07 ID:3D77 值:00029E17 表名:mp
索引:07 ID:1C77 值:00000000 表名:hp
索引:00 ID:F618 值:200226C8 表名:rid
索引:00 ID:8848 值:20026014 表名:security
索引:01 ID:4669 值:34405AF0 表名:pos
索引:02 ID:216A 值:1FFC5C58 表名:domain_address
索引:02 ID:EBEA 值:0000A09C 表名:class_id
索引:02 ID:BA5A 值:00000001 表名:amount
索引:02 ID:C6FA 值:00000010 表名:type
索引:07 ID:3D77 值:00000000 表名:mp
索引:07 ID:1C77 值:000001D5 表名:hp
地面物品
索引:00 ID:F618 值:1F8442D8 表名:rid
索引:01 ID:4669 值:1F8C24F0 表名:pos
索引:02 ID:216A 值:1F8C9BB0 表名:domain_address
索引:02 ID:EBEA 值:00007AA3 表名:class_id
索引:02 ID:BA5A 值:00000001 表名:amount
索引:02 ID:C6FA 值:00000010 表名:type
索引:04 ID:4F14 值:00000001 表名:in_around
索引:04 ID:F72C 值:00000000 表名:direction
索引:07 ID:BB87 值:00000001 表名:hold_appear
索引:02 ID:A592 值:418D2704 表名:prop_ex
索引:02 ID:FA22 值:00000003 表名:upgrade_lock 升级锁
索引:04 ID:2D94 值:00000000 表名:upgrade_bless 升级保佑
索引:05 ID:7415 值:000000CC 表名:color 颜色
索引:06 ID:A866 值:345101AC 表名:prop
索引:08 ID:F618 值:419447D8 表名:rid
索引:08 ID:F208 值:000007D1 表名:father_prop_template_id
索引:08 ID:07C8 值:00000000 表名:suit
索引:08 ID:8848 值:41898DBC 表名:security
索引:09 ID:4669 值:3F2B9680 表名:pos
索引:09 ID:01A9 值:000012C0 表名:max_durability 最大耐久
索引:0A ID:C6FA 值:00000010 表名:type
索引:0A ID:BA5A 值:00000001 表名:amount
索引:0A ID:EBEA 值:00004EBE 表名:class_id
索引:0A ID:216A 值:417AE078 表名:domain_address
索引:0A ID:568A 值:00000003 表名:step 步骤?
索引:0E ID:65FE 值:00000A59 表名:durability 耐久
53C0DF32 . 8B8D E8FDFFFF mov ecx, dword ptr [ebp-218]
53C0DF38 . 83F1 03 xor ecx, 3
53C0DF3B . 83C4 08 add esp, 8
53C0DF3E . B2 05 mov dl, 5
53C0DF40 . 83C9 04 or ecx, 4
53C0DF43 . A3 84E90254 mov dword ptr [5402E984], eax
53C0DF48 . 8815 88E90254 mov byte ptr [5402E988], dl
53C0DF4E . C785 E0FDFFFF>mov dword ptr [ebp-220], CXCentau.5402E9>
53C0DF58 . 898D E8FDFFFF mov dword ptr [ebp-218], ecx
53C0DF5E . EB 11 jmp short CXCentau.53C0DF71
53C0DF60 > 8A15 88E90254 mov dl, byte ptr [5402E988]
53C0DF66 . A1 84E90254 mov eax, dword ptr [5402E984]
53C0DF6B . 8B8D E8FDFFFF mov ecx, dword ptr [ebp-218]
53C0DF71 > 83E1 3F and ecx, 3F
53C0DF74 . 83F9 01 cmp ecx, 1 ; Switch (cases 1..F)
53C0DF77 . 0F84 43050000 je CXCentau.53C0E4C0
53C0DF7D . 83F9 04 cmp ecx, 4
53C0DF80 . 0F85 A5000000 jnz CXCentau.53C0E02B
53C0DF86 . 8BBD E0FDFFFF mov edi, dword ptr [ebp-220] ; Case 4 of switch 53C0DF74
53C0DF8C . 8A4F 04 mov cl, byte ptr [edi+4]
53C0DF8F . 80F9 02 cmp cl, 2
53C0DF92 . 75 46 jnz short CXCentau.53C0DFDA
53C0DF94 . 833F 00 cmp dword ptr [edi], 0
53C0DF97 . 75 41 jnz short CXCentau.53C0DFDA
53C0DF99 . 80FA 05 cmp dl, 5
53C0DF9C . 72 11 jb short CXCentau.53C0DFAF
53C0DF9E . FF08 dec dword ptr [eax]
53C0DFA0 . 75 0D jnz short CXCentau.53C0DFAF
53C0DFA2 . 68 84E90254 push CXCentau.5402E984
53C0DFA7 . E8 3494F8FF call CXCentau.53B973E0
53C0DFAC . 83C4 04 add esp, 4
53C0DFAF > 0F57C0 xorps xmm0, xmm0
53C0DFB2 66 db 66 ; CHAR 'f'
53C0DFB3 0F db 0F
53C0DFB4 . D6 salc
53C0DFB5 . 05 84E90254 add eax, CXCentau.5402E984
53C0DFBA . 68 C8D4DF53 push CXCentau.53DFD4C8 ; ASCII "(Null)"
53C0DFBF . C605 88E90254>mov byte ptr [5402E988], 5
53C0DFC6 . E8 D5EAF9FF call CXCentau.53BACAA0
53C0DFCB . 83C4 04 add esp, 4
53C0DFCE . A3 84E90254 mov dword ptr [5402E984], eax
53C0DFD3 . BF 84E90254 mov edi, CXCentau.5402E984
53C0DFD8 . EB 09 jmp short CXCentau.53C0DFE3
53C0DFDA > 80F9 05 cmp cl, 5
53C0DFDD . 0F85 B1030000 jnz CXCentau.53C0E394
53C0DFE3 > 8A0433 mov al, byte ptr [ebx+esi]
53C0DFE6 . 3C 0A cmp al, 0A
53C0DFE8 . 74 0B je short CXCentau.53C0DFF5
53C0DFEA . 84C0 test al, al
53C0DFEC . 74 07 je short CXCentau.53C0DFF5
53C0DFEE . B9 01000000 mov ecx, 1
53C0DFF3 . EB 02 jmp short CXCentau.53C0DFF7
53C0DFF5 > 33C9 xor ecx, ecx
53C0DFF7 > 8B95 DCFDFFFF mov edx, dword ptr [ebp-224]
53C0DFFD . 8B07 mov eax, dword ptr [edi]
53C0DFFF . 51 push ecx
53C0E000 . FFB5 E8FDFFFF push dword ptr [ebp-218]
53C0E006 . 8D8D D0FDFFFF lea ecx, dword ptr [ebp-230]
53C0E00C . 52 push edx
53C0E00D . 51 push ecx
53C0E00E . FF70 14 push dword ptr [eax+14]
53C0E011 . FF70 10 push dword ptr [eax+10]
53C0E014 . E8 97F7FFFF call CXCentau.53C0D7B0 ; 1B370D78+10
53C0E019 . 8B0D FCBD0F54 mov ecx, dword ptr [540FBDFC]
53C0E01F . 8BFE mov edi, esi
53C0E021 . 4E dec esi
53C0E022 . 83C4 18 add esp, 18
53C0E025 . 46 inc esi
53C0E026 .^ E9 2AFBFFFF jmp CXCentau.53C0DB55
53C0E02B > 83F9 0F cmp ecx, 0F
53C0E02E . 0F85 CB000000 jnz CXCentau.53C0E0FF
53C0E034 . 8B85 E0FDFFFF mov eax, dword ptr [ebp-220] ; Case F of switch 53C0DF74
53C0E03A . 8078 04 02 cmp byte ptr [eax+4], 2
53C0E03E . 0F85 EA050000 jnz CXCentau.53C0E62E
53C0E044 . 8B08 mov ecx, dword ptr [eax]
53C0E046 . 0FB6C1 movzx eax, cl
53C0E049 . 50 push eax ; /<%u>
53C0E04A . 8BC1 mov eax, ecx ; |
53C0E04C . C1F8 08 sar eax, 8 ; |
53C0E04F . 25 FF000000 and eax, 0FF ; |
53C0E054 . 50 push eax ; |<%u>
53C0E055 . 8BC1 mov eax, ecx ; |
53C0E057 . C1F8 10 sar eax, 10 ; |
53C0E05A . 25 FF000000 and eax, 0FF ; |
53C0E05F . 50 push eax ; |<%u>
53C0E060 . C1F9 18 sar ecx, 18 ; |
53C0E063 . 81E1 FF000000 and ecx, 0FF ; |
53C0E069 . 51 push ecx ; |<%u>
53C0E06A . 8D45 88 lea eax, dword ptr [ebp-78] ; |
53C0E06D . 68 5C5BDE53 push CXCentau.53DE5B5C ; |format = "%u.%u.%u.%u"
53C0E072 . 50 push eax ; |s
53C0E073 . FF15 10FCDD53 call dword ptr [<&MSVCR110.sprintf>] ; \sprintf
53C0E079 . 8D4D 88 lea ecx, dword ptr [ebp-78]
53C0E07C . 83C4 18 add esp, 18
53C0E07F . 8D51 01 lea edx, dword ptr [ecx+1]
53C0E082 > 8A01 mov al, byte ptr [ecx]
53C0E084 . 41 inc ecx
53C0E085 . 84C0 test al, al
53C0E087 .^ 75 F9 jnz short CXCentau.53C0E082
53C0E089 . 8A0433 mov al, byte ptr [ebx+esi]
53C0E08C . 2BCA sub ecx, edx
53C0E08E . 3C 0A cmp al, 0A
53C0E090 . 74 3A je short CXCentau.53C0E0CC
53C0E092 . 84C0 test al, al
53C0E094 . 74 36 je short CXCentau.53C0E0CC
53C0E096 . 8B95 DCFDFFFF mov edx, dword ptr [ebp-224]
53C0E09C . B8 01000000 mov eax, 1
53C0E0A1 . 50 push eax
53C0E0A2 . FFB5 E8FDFFFF push dword ptr [ebp-218]
53C0E0A8 . 8D85 D0FDFFFF lea eax, dword ptr [ebp-230]
53C0E0AE . 52 push edx
53C0E0AF . 50 push eax
53C0E0B0 . 8D45 88 lea eax, dword ptr [ebp-78]
53C0E0B3 . 51 push ecx
53C0E0B4 . 50 push eax
53C0E0B5 . E8 F6F6FFFF call CXCentau.53C0D7B0
53C0E0BA . 8B0D FCBD0F54 mov ecx, dword ptr [540FBDFC]
53C0E0C0 . 8BFE mov edi, esi
53C0E0C2 . 4E dec esi
53C0E0C3 . 83C4 18 add esp, 18
53C0E0C6 . 46 inc esi
53C0E0C7 .^ E9 89FAFFFF jmp CXCentau.53C0DB55
53C0E0CC > 8B95 DCFDFFFF mov edx, dword ptr [ebp-224]
53C0E0D2 . 33C0 xor eax, eax
53C0E0D4 . 50 push eax
53C0E0D5 . FFB5 E8FDFFFF push dword ptr [ebp-218]
53C0E0DB . 8D85 D0FDFFFF lea eax, dword ptr [ebp-230]
53C0E0E1 . 52 push edx
53C0E0E2 . 50 push eax
53C0E0E3 . 8D45 88 lea eax, dword ptr [ebp-78]
53C0E0E6 . 51 push ecx
53C0E0E7 . 50 push eax
53C0E0E8 . E8 C3F6FFFF call CXCentau.53C0D7B0
53C0E0ED . 8B0D FCBD0F54 mov ecx, dword ptr [540FBDFC]
53C0E0F3 . 8BFE mov edi, esi
53C0E0F5 . 4E dec esi
53C0E0F6 . 83C4 18 add esp, 18
53C0E0F9 . 46 inc esi
53C0E0FA .^ E9 56FAFFFF jmp CXCentau.53C0DB55
[人物指针 + 0 * 8] = 物品表
59436640 /$ 55 push ebp
59436641 |. 8BEC mov ebp, esp
59436643 |. 81EC 0C040000 sub esp, 40C
59436649 |. A1 70468D59 mov eax, dword ptr [598D4670]
5943664E |. 33C5 xor eax, ebp
59436650 |. 8945 FC mov dword ptr [ebp-4], eax
59436653 |. 53 push ebx
59436654 |. 8B5D 10 mov ebx, dword ptr [ebp+10]
59436657 |. 56 push esi
59436658 |. 8B75 08 mov esi, dword ptr [ebp+8]
5943665B |. 57 push edi
5943665C |. 8B06 mov eax, dword ptr [esi]
5943665E |. 8B7D 0C mov edi, dword ptr [ebp+C]
59436661 |. 8378 14 00 cmp dword ptr [eax+14], 0
59436665 |. 89BD F8FBFFFF mov dword ptr [ebp-408], edi
5943666B |. 899D F4FBFFFF mov dword ptr [ebp-40C], ebx
59436671 |. 0F84 82010000 je CXCentau.594367F9
59436677 |. 8A46 05 mov al, byte ptr [esi+5]
5943667A |. A8 08 test al, 8
5943667C |. 75 2B jnz short CXCentau.594366A9
5943667E |. 8BFF mov edi, edi
59436680 |> A8 10 /test al, 10
59436682 |. 8B06 |mov eax, dword ptr [esi]
59436684 |. 75 55 |jnz short CXCentau.594366DB
59436686 |. 6A 2F |push 2F ; /c = 2F ('/')
59436688 |. FF70 10 |push dword ptr [eax+10] ; |s
5943668B |. FF15 18FC6759 |call dword ptr [<&MSVCR110.strchr>] ; \strchr
59436691 |. 83C4 08 |add esp, 8
59436694 |. 85C0 |test eax, eax
59436696 |. 75 06 |jnz short CXCentau.5943669E
59436698 |. 804E 05 08 |or byte ptr [esi+5], 8
5943669C |. EB 04 |jmp short CXCentau.594366A2
5943669E |> 804E 05 10 |or byte ptr [esi+5], 10
594366A2 |> 8A46 05 |mov al, byte ptr [esi+5]
594366A5 |. A8 08 |test al, 8
594366A7 |.^ 74 D7 \je short CXCentau.59436680
594366A9 |> 56 push esi
594366AA |. FF37 push dword ptr [edi]
594366AC |. E8 8F93FFFF call CXCentau.5942FA40
594366B1 |. 8B0B mov ecx, dword ptr [ebx]
594366B3 |. 8908 mov dword ptr [eax], ecx ; 写入物品数量
594366B5 |. 8B4B 04 mov ecx, dword ptr [ebx+4]
594366B8 |. 83C4 08 add esp, 8
594366BB |. 8948 04 mov dword ptr [eax+4], ecx
594366BE |. 807B 04 05 cmp byte ptr [ebx+4], 5
594366C2 |. 72 04 jb short CXCentau.594366C8
594366C4 |. 8B03 mov eax, dword ptr [ebx]
594366C6 |. FF00 inc dword ptr [eax]
594366C8 |> 5F pop edi
594366C9 |. 5E pop esi
594366CA |. 8BC3 mov eax, ebx
594366CC |. 5B pop ebx
594366CD |. 8B4D FC mov ecx, dword ptr [ebp-4]
594366D0 |. 33CD xor ecx, ebp
594366D2 |. E8 67951E00 call CXCentau.5961FC3E
594366D7 |. 8BE5 mov esp, ebp
594366D9 |. 5D pop ebp
594366DA |. C3 retn
594366DB |> 8B48 10 mov ecx, dword ptr [eax+10]
594366DE |. 8B40 14 mov eax, dword ptr [eax+14]
594366E1 |. 3D 00040000 cmp eax, 400
594366E6 |. 0F83 17010000 jnb CXCentau.59436803
594366EC |. 40 inc eax
594366ED |. 50 push eax ; /n
594366EE |. 51 push ecx ; |src
594366EF |. 8D85 FCFBFFFF lea eax, dword ptr [ebp-404] ; |
594366F5 |. 50 push eax ; |dest
594366F6 |. E8 A1951E00 call <jmp.&MSVCR110.memcpy> ; \memcpy
594366FB |. 83C4 0C add esp, 0C
594366FE |. 80BD FCFBFFFF>cmp byte ptr [ebp-404], 2F
59436705 |. 8DBD FCFBFFFF lea edi, dword ptr [ebp-404]
5943670B |. 75 09 jnz short CXCentau.59436716
5943670D |. 8D49 00 lea ecx, dword ptr [ecx]
59436710 |> 47 /inc edi
59436711 |. 803F 2F |cmp byte ptr [edi], 2F
59436714 |.^ 74 FA \je short CXCentau.59436710
59436716 |> 803F 00 cmp byte ptr [edi], 0
59436719 |. 0F84 F4000000 je CXCentau.59436813
5943671F |. 8B85 F8FBFFFF mov eax, dword ptr [ebp-408]
59436725 |. 6A 2F push 2F ; /c = 2F ('/')
59436727 |. 8B00 mov eax, dword ptr [eax] ; |
59436729 |. 57 push edi ; |s
5943672A |. 8985 F8FBFFFF mov dword ptr [ebp-408], eax ; |
59436730 |. FF15 18FC6759 call dword ptr [<&MSVCR110.strchr>] ; \strchr
59436736 |. 8BD8 mov ebx, eax
59436738 |. 83C4 08 add esp, 8
5943673B |. 85DB test ebx, ebx
5943673D |. 0F84 8D000000 je CXCentau.594367D0
59436743 |> C603 00 /mov byte ptr [ebx], 0
59436746 |. 8BF3 |mov esi, ebx
59436748 |> 46 |/inc esi
59436749 |. 803E 2F ||cmp byte ptr [esi], 2F
5943674C |.^ 74 FA |\je short CXCentau.59436748
5943674E |. 803E 00 |cmp byte ptr [esi], 0
59436751 |. 0F84 79000000 |je CXCentau.594367D0
59436757 |. 57 |push edi
59436758 |. FFB5 F8FBFFFF |push dword ptr [ebp-408]
界面UI
界面点击CALL
0021F1D4 A8 4C E2 55 03 00 00 00 01 17 21 75 C0 61 01 00 ↙釻...!u繿.
0021F1E4 44 9F 11 24 00 C0 67 44 00 00 2F 43 00 00 00 00 D?$.纆D../C....
0021F1F4 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ...............
0021F204 01 00 00 00 00 00 00 00 .......
A8 4C E2 55 03 00 00 00 01 17 21 75 C0 61 01 00
----------- ----------- -- -------- -----------
虚函数? 未知 标志 句柄?
44 9F 11 24 00 C0 67 44 00 00 2F 43 00 00 00 00
----------- ----------- ----------- -----------
目标控件指针 X Y
00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
----------- ----------- ----------- -----------
01 00 00 00 00 00 00 00
-----------
这个是所有游戏按钮指针
i: 2370 BASE:27629C0C 名称指针:1F451DA0 指针:27610A40 ID:00001D91 名称:/centaur/inherit/window/imagebutton.c
搜索寻路按钮
breviary_mapbreviaryNpcListbreviary_mapsearchBtn
/local/inherit/window/neditbox.c
i: 16099 BASE:31B8688C 名称指针:1D879A28 指针:31BB8D88 ID:0000439D 名称:/local/inherit/window/nstaticdocument.c
属性面板 system_opattrib
active_walk_pos
5650D310 /$ 55 push ebp
5650D311 |. 8BEC mov ebp, esp
5650D313 |. 81EC 10010000 sub esp, 110
5650D319 |. 53 push ebx
5650D31A |. 56 push esi
5650D31B |. 57 push edi
5650D31C |. 6A 00 push 0
5650D31E |. 6A 00 push 0
5650D320 |. 8BFA mov edi, edx
5650D322 |. 68 4CFCA356 push CXCentau.56A3FC4C ; ASCII "dbase"
5650D327 |. 51 push ecx
5650D328 |. 897D FC mov dword ptr [ebp-4], edi
5650D32B |. 894D F4 mov dword ptr [ebp-C], ecx
5650D32E |. 8BF7 mov esi, edi ; ESI 可以看指针
5650D330 |. 897D F8 mov dword ptr [ebp-8], edi
5650D333 |. E8 B8C41B00 call CXCentau.566C97F0
5650D338 |. 8BD0 mov edx, eax
5650D33A |. 83C4 10 add esp, 10
5650D33D |. 85D2 test edx, edx
5650D33F |. 0F84 21010000 je CXCentau.5650D466
5650D345 |> 8B1A /mov ebx, dword ptr [edx]
5650D347 |. 8BC7 |mov eax, edi
5650D349 |. 8D48 01 |lea ecx, dword ptr [eax+1]
5650D34C |. 894D F0 |mov dword ptr [ebp-10], ecx
5650D34F |. 90 |nop
5650D350 |> 8A08 |/mov cl, byte ptr [eax]
5650D352 |. 40 ||inc eax
5650D353 |. 84C9 ||test cl, cl
5650D355 |.^ 75 F9 |\jnz short CXCentau.5650D350
5650D357 |. 2B45 F0 |sub eax, dword ptr [ebp-10]
5650D35A |. 0F84 F6000000 |je CXCentau.5650D456
5650D360 |. 6A 2F |push 2F ; /c = 2F ('/')
5650D362 |. 57 |push edi ; |s
5650D363 |. FF15 180C9156 |call dword ptr [<&MSVCR110.strchr>] ; \strchr
5650D369 |. 8BF8 |mov edi, eax
5650D36B |. 83C4 08 |add esp, 8
5650D36E |. 85FF |test edi, edi
5650D370 |. 74 5D |je short CXCentau.5650D3CF
5650D372 |> 8B45 F8 |/mov eax, dword ptr [ebp-8]
5650D375 |. 8BF7 ||mov esi, edi
5650D377 |. 2BF0 ||sub esi, eax
5650D379 |. B9 FF000000 ||mov ecx, 0FF
5650D37E |. 81FE FF000000 ||cmp esi, 0FF
5650D384 |. 0F47F1 ||cmova esi, ecx
5650D387 |. 56 ||push esi ; /maxlen
5650D388 |. 50 ||push eax ; |src
5650D389 |. 8D85 F0FEFFFF ||lea eax, dword ptr [ebp-110] ; |
5650D38F |. 50 ||push eax ; |dest
5650D390 |. FF15 740B9156 ||call dword ptr [<&MSVCR110.strncpy>] ; \strncpy
5650D396 |. C68435 F0FEFF>||mov byte ptr [ebp+esi-110], 0
5650D39E |. 8D77 01 ||lea esi, dword ptr [edi+1]
5650D3A1 |. 6A 2F ||push 2F ; /c = 2F ('/')
5650D3A3 |. 56 ||push esi ; |s
5650D3A4 |. 8975 F8 ||mov dword ptr [ebp-8], esi ; |
5650D3A7 |. FF15 180C9156 ||call dword ptr [<&MSVCR110.strchr>] ; \strchr
5650D3AD |. 8BF8 ||mov edi, eax
5650D3AF |. 8D85 F0FEFFFF ||lea eax, dword ptr [ebp-110]
5650D3B5 |. 50 ||push eax
5650D3B6 |. 53 ||push ebx
5650D3B7 |. E8 24271B00 ||call CXCentau.566BFAE0
5650D3BC |. 83C4 1C ||add esp, 1C
5650D3BF |. 85C0 ||test eax, eax
5650D3C1 |. 74 53 ||je short CXCentau.5650D416
5650D3C3 |. 8078 04 07 ||cmp byte ptr [eax+4], 7
5650D3C7 |. 75 4D ||jnz short CXCentau.5650D416
5650D3C9 |. 8B18 ||mov ebx, dword ptr [eax]
5650D3CB |. 85FF ||test edi, edi
5650D3CD |.^ 75 A3 |\jnz short CXCentau.5650D372
5650D3CF |> 56 |push esi
5650D3D0 |. 53 |push ebx
5650D3D1 |. E8 0A271B00 |call CXCentau.566BFAE0
5650D3D6 |. 83C4 08 |add esp, 8
5650D3D9 |. 85C0 |test eax, eax
5650D3DB |. 75 69 |jnz short CXCentau.5650D446
5650D3DD |. 3845 08 |cmp byte ptr [ebp+8], al
5650D3E0 |. 75 58 |jnz short CXCentau.5650D43A
5650D3E2 |. 8B7D F4 |mov edi, dword ptr [ebp-C]
5650D3E5 |. 8B7F 3C |mov edi, dword ptr [edi+3C]
5650D3E8 |. 897D F4 |mov dword ptr [ebp-C], edi
5650D3EB |. 85FF |test edi, edi
5650D3ED |. 74 4B |je short CXCentau.5650D43A
5650D3EF |. 8B75 FC |mov esi, dword ptr [ebp-4]
5650D3F2 |. 50 |push eax
5650D3F3 |. 50 |push eax
5650D3F4 |. 68 4CFCA356 |push CXCentau.56A3FC4C ; ASCII "dbase"
5650D3F9 |. 57 |push edi
5650D3FA |. C645 08 01 |mov byte ptr [ebp+8], 1
5650D3FE |. 8975 F8 |mov dword ptr [ebp-8], esi
5650D401 |. E8 EAC31B00 |call CXCentau.566C97F0
5650D406 |. 8BD0 |mov edx, eax
5650D408 |. 83C4 10 |add esp, 10
5650D40B |. 85D2 |test edx, edx
5650D40D |. 74 57 |je short CXCentau.5650D466
5650D40F |. 8BFE |mov edi, esi
5650D411 |.^ E9 2FFFFFFF \jmp CXCentau.5650D345
5650D416 |> 807D 08 00 cmp byte ptr [ebp+8], 0
5650D41A |. 75 1E jnz short CXCentau.5650D43A
5650D41C |. 8B4D F4 mov ecx, dword ptr [ebp-C]
5650D41F |. 8B49 3C mov ecx, dword ptr [ecx+3C]
5650D422 |. 85C9 test ecx, ecx
5650D424 |. 74 14 je short CXCentau.5650D43A
5650D426 |. 8B55 FC mov edx, dword ptr [ebp-4]
5650D429 |. 6A 01 push 1
5650D42B |. E8 E0FEFFFF call CXCentau.5650D310
5650D430 |. 83C4 04 add esp, 4
5650D433 |. 5F pop edi
5650D434 |. 5E pop esi
5650D435 |. 5B pop ebx
5650D436 |. 8BE5 mov esp, ebp
5650D438 |. 5D pop ebp
5650D439 |. C3 retn
5650D43A |> E8 D1531B00 call CXCentau.566C2810
5650D43F |. 5F pop edi
5650D440 |. 5E pop esi
5650D441 |. 5B pop ebx
5650D442 |. 8BE5 mov esp, ebp
5650D444 |. 5D pop ebp
5650D445 |. C3 retn
5650D446 |> 50 push eax
5650D447 |. E8 54541B00 call CXCentau.566C28A0
5650D44C |. 83C4 04 add esp, 4
5650D44F |. 5F pop edi
5650D450 |. 5E pop esi
5650D451 |. 5B pop ebx
5650D452 |. 8BE5 mov esp, ebp
5650D454 |. 5D pop ebp
5650D455 |. C3 retn
5650D456 |> 52 push edx
5650D457 |. E8 44541B00 call CXCentau.566C28A0
5650D45C |. 83C4 04 add esp, 4
5650D45F |. 5F pop edi
5650D460 |. 5E pop esi
5650D461 |. 5B pop ebx
5650D462 |. 8BE5 mov esp, ebp
5650D464 |. 5D pop ebp
5650D465 |. C3 retn
5650D466 |> 68 54FCA356 push CXCentau.56A3FC54 ; ASCII "Can not find dbase."
5650D46B |. E8 A0831B00 call CXCentau.566C5810
5650D470 |. CC int3
5650D471 |. CC int3
5650D472 |. CC int3
5650D473 |. CC int3
5650D474 |. CC int3
5650D475 |. CC int3
5650D476 |. CC int3
5650D477 |. CC int3
5650D478 |. CC int3
5650D479 |. CC int3
5650D47A |. CC int3
5650D47B |. CC int3
5650D47C |. CC int3
5650D47D |. CC int3
5650D47E |. CC int3
5650D47F |. CC int3
5650D480 |. A1 B055D756 mov eax, dword ptr [56D755B0]
5650D485 |. 8B40 04 mov eax, dword ptr [eax+4]
5650D488 |. 83F8 02 cmp eax, 2
5650D48B |. 7F 3C jg short CXCentau.5650D4C9
5650D48D |. 56 push esi
5650D48E |. 57 push edi
5650D48F |. 6A 00 push 0
5650D491 |. E8 2A491B00 call CXCentau.566C1DC0
5650D496 |. 6A 02 push 2
5650D498 |. 6A 01 push 1
5650D49A |. 8BF8 mov edi, eax
5650D49C |. E8 EF441B00 call CXCentau.566C1990
5650D4A1 |. 8B30 mov esi, dword ptr [eax]
5650D4A3 |. 6A 02 push 2
5650D4A5 |. E8 564B1B00 call CXCentau.566C2000
5650D4AA |. 8B0D B055D756 mov ecx, dword ptr [56D755B0]
5650D4B0 |. 85F6 test esi, esi
5650D4B2 |. 8B49 24 mov ecx, dword ptr [ecx+24]
5650D4B5 |. 0F95C0 setne al
5650D4B8 |. 0FB6C0 movzx eax, al
5650D4BB |. 50 push eax
5650D4BC |. 8BD7 mov edx, edi
5650D4BE |. E8 4DFEFFFF call CXCentau.5650D310
5650D4C3 |. 83C4 14 add esp, 14
5650D4C6 |. 5F pop edi
5650D4C7 |. 5E pop esi
5650D4C8 |. C3 retn
5650D4C9 |> 68 38FBA356 push CXCentau.56A3FB38 ; ASCII "cxc_query"
5650D4CE |. 50 push eax
5650D4CF |. 68 9C5FA356 push CXCentau.56A35F9C ; ASCII "Too many arguments(%d) to %s.",LF
5650D4D4 |. E8 37831B00 call CXCentau.566C5810
5650D4D9 |. CC int3
5650D4DA |. CC int3
5650D4DB |. CC int3
5650D4DC |. CC int3
5650D4DD |. CC int3
5650D4DE |. CC int3
5650D4DF |. CC int3
5650D4E0 |. A1 B055D756 mov eax, dword ptr [56D755B0]
5650D4E5 |. 8B40 04 mov eax, dword ptr [eax+4]
5650D4E8 |. 85C0 test eax, eax
5650D4EA |. 7F 59 jg short CXCentau.5650D545
5650D4EC |. 56 push esi
5650D4ED |. 57 push edi
5650D4EE |. 50 push eax
5650D4EF |. E8 0C4B1B00 call CXCentau.566C2000
5650D4F4 |. 8B3D 30E2CA56 mov edi, dword ptr [56CAE230]
5650D4FA |. 8B35 34E2CA56 mov esi, dword ptr [56CAE234]
5650D500 |. 6A 03 push 3
5650D502 |. E8 191B1B00 call CXCentau.566BF020
5650D507 |. 50 push eax
5650D508 |. E8 D34D1B00 call CXCentau.566C22E0
5650D50D |. 57 push edi
5650D50E |. E8 2D501B00 call CXCentau.566C2540
5650D513 |. 68 68FCA356 push CXCentau.56A3FC68 ; ASCII "total_alloc"
5650D518 |. E8 933E1B00 call CXCentau.566C13B0
5650D51D |. 56 push esi
5650D51E |. E8 1D501B00 call CXCentau.566C2540
5650D523 |. 68 74FCA356 push CXCentau.56A3FC74 ; ASCII "total_free"
5650D528 |. E8 833E1B00 call CXCentau.566C13B0
5650D52D |. 2BFE sub edi, esi
5650D52F |. 57 push edi
5650D530 |. E8 0B501B00 call CXCentau.566C2540
5650D535 |. 68 80FCA356 push CXCentau.56A3FC80 ; ASCII "net"
5650D53A |. E8 713E1B00 call CXCentau.566C13B0
5650D53F |. 83C4 24 add esp, 24
5650D542 |. 5F pop edi
5650D543 |. 5E pop esi
5650D544 |. C3 retn
5650D545 |> 68 38FBA356 push CXCentau.56A3FB38 ; ASCII "cxc_query"
5650D54A |. 50 push eax
5650D54B |. 68 9C5FA356 push CXCentau.56A35F9C ; ASCII "Too many arguments(%d) to %s.",LF
5650D550 |. E8 BB821B00 call CXCentau.566C5810
5650D555 |. CC int3
5650D556 |. CC int3
5650D557 |. CC int3
5650D558 |. CC int3
5650D559 |. CC int3
5650D55A |. CC int3
5650D55B |. CC int3
5650D55C |. CC int3
5650D55D |. CC int3
5650D55E |. CC int3
5650D55F |. CC int3
5650D560 |. 68 A0C5B656 push CXCentau.56B6C5A0
5650D565 |. 68 44FBA356 push CXCentau.56A3FB44 ; ASCII "system.ext"
5650D56A |. E8 916A1B00 call CXCentau.566C4000
5650D56F |. 83C4 08 add esp, 8
5650D572 |. B8 01000000 mov eax, 1
5650D577 \. C3 retn
55CDCBFF . 8B7424 10 mov esi, dword ptr [esp+10]
55CDCC03 . FF44B1 04 inc dword ptr [ecx+esi*4+4]
55CDCC07 . FF15 D0E2E055 call dword ptr [<&MSVCR110.clock>] ; msvcr110.clock
55CDCC0D . 8B4C24 08 mov ecx, dword ptr [esp+8]
55CDCC11 . 2B04B1 sub eax, dword ptr [ecx+esi*4]
55CDCC14 . 66:0F6EC0 movd mm0, eax
55CDCC18 . F3: prefix rep:
55CDCC19 0F db 0F
55CDCC1A . E6 C0 out 0C0, al
55CDCC1C . 8B4424 0C mov eax, dword ptr [esp+C]
55CDCC20 . F2: prefix repne:
55CDCC21 . 0F5E05 D89DE3>divps xmm0, dqword ptr [55E39DD8]
55CDCC28 . 66:0F2F40 68 comiss xmm0, dword ptr [eax+68]
55CDCC2D . 77 41 ja short CEGUIBas.55CDCC70
55CDCC2F . F3:0F1044B1 1>movss xmm0, dword ptr [ecx+esi*4+10]
55CDCC35 . F3:0F104C24 4>movss xmm1, dword ptr [esp+40]
55CDCC3B . 0F2FC1 comiss xmm0, xmm1
55CDCC3E . 77 30 ja short CEGUIBas.55CDCC70
55CDCC40 . 0F2F4CB1 14 comiss xmm1, dword ptr [ecx+esi*4+14]
55CDCC45 . 77 29 ja short CEGUIBas.55CDCC70
55CDCC47 . F3:0F1044B1 0>movss xmm0, dword ptr [ecx+esi*4+8]
55CDCC4D . F3:0F104C24 4>movss xmm1, dword ptr [esp+44]
55CDCC53 . 0F2FC1 comiss xmm0, xmm1
55CDCC56 . 77 18 ja short CEGUIBas.55CDCC70
55CDCC58 . 0F2F4CB1 0C comiss xmm1, dword ptr [ecx+esi*4+C]
55CDCC5D . 77 11 ja short CEGUIBas.55CDCC70
55CDCC5F . 397CB1 18 cmp dword ptr [ecx+esi*4+18], edi
55CDCC63 . 75 0B jnz short CEGUIBas.55CDCC70
55CDCC65 . 837CB1 04 03 cmp dword ptr [ecx+esi*4+4], 3
55CDCC6A . 0F8E DB000000 jle CEGUIBas.55CDCD4B
55CDCC70 > C744B1 04 010>mov dword ptr [ecx+esi*4+4], 1
55CDCC78 . F3:0F104424 4>movss xmm0, dword ptr [esp+40]
55CDCC7E . F3:0F104CB1 1>movss xmm1, dword ptr [ecx+esi*4+14]
55CDCC84 . F3:0F1054B1 0>movss xmm2, dword ptr [ecx+esi*4+C]
55CDCC8A . F3:0F5C4CB1 1>subss xmm1, dword ptr [ecx+esi*4+10]
55CDCC90 . F3:0F5C54B1 0>subss xmm2, dword ptr [ecx+esi*4+8]
55CDCC96 . F3:0F1144B1 1>movss dword ptr [ecx+esi*4+10], xmm0
55CDCC9C . F3:0F104424 4>movss xmm0, dword ptr [esp+44]
55CDCCA2 . F3:0F1064B1 1>movss xmm4, dword ptr [ecx+esi*4+10]
55CDCCA8 . F3:0F1144B1 0>movss dword ptr [ecx+esi*4+8], xmm0
55CDCCAE . F3:0F106CB1 0>movss xmm5, dword ptr [ecx+esi*4+8]
55CDCCB4 . 0F28C4 movaps xmm0, xmm4
55CDCCB7 . F3:0F58C1 addss xmm0, xmm1
55CDCCBB . F3:0F1144B1 1>movss dword ptr [ecx+esi*4+14], xmm0
55CDCCC1 . 0F28C5 movaps xmm0, xmm5
55CDCCC4 . F3:0F58C2 addss xmm0, xmm2
55CDCCC8 . F3:0F1144B1 0>movss dword ptr [ecx+esi*4+C], xmm0
55CDCCCE . 0F28C4 movaps xmm0, xmm4
55CDCCD1 . F3:0F5840 70 addss xmm0, dword ptr [eax+70]
55CDCCD6 . F3:0F1144B1 1>movss dword ptr [ecx+esi*4+14], xmm0
55CDCCDC . F3:0F1040 74 movss xmm0, dword ptr [eax+74]
55CDCCE1 . F3:0F58C5 addss xmm0, xmm5
55CDCCE5 . F3:0F1144B1 0>movss dword ptr [ecx+esi*4+C], xmm0
55CDCCEB . F3:0F1050 70 movss xmm2, dword ptr [eax+70]
55CDCCF0 . F3:0F5915 809>mulss xmm2, dword ptr [55E39D80]
55CDCCF8 . F3:0F1058 74 movss xmm3, dword ptr [eax+74]
55CDCCFD . F3:0F1044B1 1>movss xmm0, dword ptr [ecx+esi*4+14]
55CDCD03 . 0F5715 509EE3>xorps xmm2, dqword ptr [55E39E50]
55CDCD0A . F3:0F591D 809>mulss xmm3, dword ptr [55E39D80]
55CDCD12 . F3:0F58C2 addss xmm0, xmm2
55CDCD16 . F3:0F58E2 addss xmm4, xmm2
55CDCD1A . 0F571D 509EE3>xorps xmm3, dqword ptr [55E39E50]
55CDCD21 . F3:0F58EB addss xmm5, xmm3
55CDCD25 . F3:0F1144B1 1>movss dword ptr [ecx+esi*4+14], xmm0
55CDCD2B . F3:0F1044B1 0>movss xmm0, dword ptr [ecx+esi*4+C]
55CDCD31 . F3:0F58C3 addss xmm0, xmm3
55CDCD35 . F3:0F1164B1 1>movss dword ptr [ecx+esi*4+10], xmm4
55CDCD3B . F3:0F116CB1 0>movss dword ptr [ecx+esi*4+8], xmm5
55CDCD41 . F3:0F1144B1 0>movss dword ptr [ecx+esi*4+C], xmm0
55CDCD47 . 897CB1 18 mov dword ptr [ecx+esi*4+18], edi
55CDCD4B > 807C24 34 00 cmp byte ptr [esp+34], 0
55CDCD50 . 8B44B1 04 mov eax, dword ptr [ecx+esi*4+4]
55CDCD54 . 894424 5C mov dword ptr [esp+5C], eax
55CDCD58 . 75 5E jnz short CEGUIBas.55CDCDB8
55CDCD5A . 8D9B 00000000 lea ebx, dword ptr [ebx]
55CDCD60 > 85FF test edi, edi
55CDCD62 . 74 54 je short CEGUIBas.55CDCDB8
55CDCD64 . 897C24 3C mov dword ptr [esp+3C], edi
55CDCD68 . F687 FA000000>test byte ptr [edi+FA], 1
55CDCD6F . 74 1D je short CEGUIBas.55CDCD8E
55CDCD71 . 8B44B1 04 mov eax, dword ptr [ecx+esi*4+4]
55CDCD75 . 48 dec eax ; Switch (cases 1..3)
55CDCD76 . 74 16 je short CEGUIBas.55CDCD8E
55CDCD78 . 83E8 02 sub eax, 2
55CDCD7B . 75 24 jnz short CEGUIBas.55CDCDA1
55CDCD7D . 8B07 mov eax, dword ptr [edi] ; Case 3 of switch 55CDCD75
55CDCD7F . 8D4C24 2C lea ecx, dword ptr [esp+2C]
55CDCD83 . 51 push ecx
55CDCD84 . 8BCF mov ecx, edi
55CDCD86 . FF90 DC000000 call dword ptr [eax+DC]
55CDCD8C . EB 0F jmp short CEGUIBas.55CDCD9D
55CDCD8E > 8B07 mov eax, dword ptr [edi] ; Case 1 of switch 55CDCD75
55CDCD90 . 8D4C24 2C lea ecx, dword ptr [esp+2C]
55CDCD94 . 51 push ecx
55CDCD95 . 8BCF mov ecx, edi
55CDCD97 . FF90 CC000000 call dword ptr [eax+CC] ; xxx mouse button down
55CDCD9D > 8B4C24 08 mov ecx, dword ptr [esp+8]
55CDCDA1 > 8B4424 0C mov eax, dword ptr [esp+C] ; Default case of switch 55CDCD75
55CDCDA5 . 3B78 44 cmp edi, dword ptr [eax+44]
55CDCDA8 . 74 05 je short CEGUIBas.55CDCDAF
55CDCDAA . 8B7F 3C mov edi, dword ptr [edi+3C]
55CDCDAD . EB 02 jmp short CEGUIBas.55CDCDB1
55CDCDAF > 33FF xor edi, edi
55CDCDB1 > 807C24 34 00 cmp byte ptr [esp+34], 0
55CDCDB6 .^ 74 A8 je short CEGUIBas.55CDCD60
55CDCDB8 > FF15 D0E2E055 call dword ptr [<&MSVCR110.clock>] ; msvcr110.clock
55CDCDBE . 8B4C24 08 mov ecx, dword ptr [esp+8]
55CDCDC2 . 8904B1 mov dword ptr [ecx+esi*4], eax
55CDCDC5 . 8A4424 34 mov al, byte ptr [esp+34]
55CDCDC9 . 8B4C24 64 mov ecx, dword ptr [esp+64]
55CDCDCD . 64:890D 00000>mov dword ptr fs:[0], ecx
55CDCDD4 . 5F pop edi
55CDCDD5 . 5E pop esi
55CDCDD6 . 8BE5 mov esp, ebp
55CDCDD8 . 5D pop ebp
55CDCDD9 . C2 0400 retn 4
55CDCDDC > 8B4C24 64 mov ecx, dword ptr [esp+64]
55CDCDE0 . 5F pop edi
55CDCDE1 . 32C0 xor al, al
55CDCDE3 . 64:890D 00000>mov dword ptr fs:[0], ecx
55CDCDEA . 5E pop esi
55CDCDEB . 8BE5 mov esp, ebp
55CDCDED . 5D pop ebp
55CDCDEE . C2 0400 retn 4
调用控件点击
push 0046F138
mov ecx, 226130FC
mov eax, 0x55E34A04
call [eax+0xCC]
push 0046F138
mov ecx, 226130FC
mov eax, 0x55E34A04
call [eax+0xD0]
55CDCE00 >/$ 55 push ebp
55CDCE01 |. 8BEC mov ebp, esp
55CDCE03 |. 83E4 F8 and esp, FFFFFFF8
55CDCE06 |. 64:A1 0000000>mov eax, dword ptr fs:[0]
55CDCE0C |. 6A FF push -1
55CDCE0E |. 68 B861DE55 push CEGUIBas.55DE61B8
55CDCE13 |. 50 push eax
55CDCE14 |. 64:8925 00000>mov dword ptr fs:[0], esp
55CDCE1B |. A1 7CCBEC55 mov eax, dword ptr [CEGUI::Singleton<CEG>
55CDCE20 |. FF05 58B1EC55 inc dword ptr [CEGUI::EventArgs::lastTim>
55CDCE26 |. 83EC 60 sub esp, 60
55CDCE29 |. 8D5424 18 lea edx, dword ptr [esp+18]
55CDCE2D |. 53 push ebx
55CDCE2E |. 56 push esi
55CDCE2F |. 57 push edi
55CDCE30 |. 8BF9 mov edi, ecx
55CDCE32 |. 8B48 14 mov ecx, dword ptr [eax+14]
55CDCE35 |. 52 push edx
55CDCE36 |. 8B01 mov eax, dword ptr [ecx]
55CDCE38 |. FF50 14 call dword ptr [eax+14]
55CDCE3B |. 8D4424 24 lea eax, dword ptr [esp+24]
55CDCE3F |. 50 push eax
55CDCE40 |. 8BCF mov ecx, edi
55CDCE42 |. E8 F9EDFFFF call CEGUIBas.CEGUI::System::getRenderTa>
55CDCE47 |. 8BD8 mov ebx, eax
55CDCE49 |. 85DB test ebx, ebx
55CDCE4B |. 0F84 DF020000 je CEGUIBas.55CDD130
55CDCE51 |. 8B75 08 mov esi, dword ptr [ebp+8]
55CDCE54 |. 56 push esi
55CDCE55 |. 8BCF mov ecx, edi
55CDCE57 |. E8 F4100000 call CEGUIBas.CEGUI::System::mouseButton>
55CDCE5C |. F7D0 not eax
55CDCE5E |. 2147 50 and dword ptr [edi+50], eax
55CDCE61 |. A1 58B1EC55 mov eax, dword ptr [CEGUI::EventArgs::la>
55CDCE66 |. C64424 3C 00 mov byte ptr [esp+3C], 0
55CDCE6B |. 894424 40 mov dword ptr [esp+40], eax
55CDCE6F |. C74424 44 000>mov dword ptr [esp+44], 0
55CDCE77 |. C74424 34 A84>mov dword ptr [esp+34], offset CEGUIBas.>
55CDCE7F |. C74424 48 000>mov dword ptr [esp+48], 0
55CDCE87 |. C74424 4C 000>mov dword ptr [esp+4C], 0
55CDCE8F |. C74424 50 000>mov dword ptr [esp+50], 0
55CDCE97 |. C74424 54 000>mov dword ptr [esp+54], 0
55CDCE9F |. C74424 38 030>mov dword ptr [esp+38], 3
55CDCEA7 |. 8D4C24 24 lea ecx, dword ptr [esp+24]
55CDCEAB |. 51 push ecx
55CDCEAC |. 8D4C24 30 lea ecx, dword ptr [esp+30]
55CDCEB0 |. C74424 78 000>mov dword ptr [esp+78], 0
55CDCEB8 |. 8B03 mov eax, dword ptr [ebx]
55CDCEBA |. 51 push ecx
55CDCEBB |. 8BCB mov ecx, ebx
55CDCEBD |. FF50 58 call dword ptr [eax+58]
55CDCEC0 |. 8B4424 2C mov eax, dword ptr [esp+2C]
55CDCEC4 |. 8B4F 78 mov ecx, dword ptr [edi+78]
55CDCEC7 |. 894424 48 mov dword ptr [esp+48], eax
55CDCECB |. 8B4424 30 mov eax, dword ptr [esp+30]
55CDCECF |. 894424 4C mov dword ptr [esp+4C], eax
55CDCED3 |. C74424 1C 000>mov dword ptr [esp+1C], 0
55CDCEDB |. 8B4424 1C mov eax, dword ptr [esp+1C]
55CDCEDF |. 894424 50 mov dword ptr [esp+50], eax
55CDCEE3 |. C74424 20 000>mov dword ptr [esp+20], 0
55CDCEEB |. 8B4424 20 mov eax, dword ptr [esp+20]
55CDCEEF |. 894424 54 mov dword ptr [esp+54], eax
55CDCEF3 |. 8B47 50 mov eax, dword ptr [edi+50]
55CDCEF6 |. 894424 5C mov dword ptr [esp+5C], eax
55CDCEFA |. 8D04F5 000000>lea eax, dword ptr [esi*8]
55CDCF01 |. 2BC6 sub eax, esi
55CDCF03 |. 894424 18 mov dword ptr [esp+18], eax
55CDCF07 |. 897424 58 mov dword ptr [esp+58], esi
55CDCF0B |. C74424 60 000>mov dword ptr [esp+60], 0
55CDCF13 |. 8B4481 04 mov eax, dword ptr [ecx+eax*4+4]
55CDCF17 |. 894424 64 mov dword ptr [esp+64], eax
55CDCF1B |. 8D4424 24 lea eax, dword ptr [esp+24]
55CDCF1F |. 894C24 10 mov dword ptr [esp+10], ecx
55CDCF23 |. 50 push eax
55CDCF24 |. 8BCF mov ecx, edi
55CDCF26 |. E8 550E0000 call CEGUIBas.CEGUI::System::getTargetWi>
好了.以上所说的.全部是研究学习.不可用于商业用途. 请叫我红领巾 深藏功与名.
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!