奇迹1.02W 服务端[1.00.16 -1.00.18 GS] 修复三转BUG方法

OD 打开Gameserver 修改汇编代码:

00448CA2 . /0F84 81000000 je GameServ.00448D29
00448CA8 . |8B45 EC mov eax, dword ptr ss:[ebp-14]
00448CAB . |50 push eax
00448CAC . |8B4D FC mov ecx, dword ptr ss:[ebp-4]
00448CAF . |0FBF91 0A0100>movsx edx, word ptr ds:[ecx+10A]
00448CB6 . |52 push edx
00448CB7 . |8B45 FC mov eax, dword ptr ss:[ebp-4]
00448CBA . |0FBF88 080100>movsx ecx, word ptr ds:[eax+108]
00448CC1 . |51 push ecx
00448CC2 . |8B55 FC mov edx, dword ptr ss:[ebp-4]
00448CC5 . |33C0 xor eax, eax
00448CC7 . |8A82 0D010000 mov al, byte ptr ds:[edx+10D]
00448CCD . |05 D0070000 add eax, 7D0
00448CD2 . |50 push eax
00448CD3 . |B9 8812F109 mov ecx, GameServ.09F11288
00448CD8 . |FF15 88D4650C call near dword ptr ds:[<&mumsg.CMsg::Ge>; mumsg.CMsg::Get
00448CDE . |50 push eax
00448CDF . |8B4D FC mov ecx, dword ptr ss:[ebp-4]
00448CE2 . |83C1 73 add ecx, 73
00448CE5 . |51 push ecx
00448CE6 . |8B55 FC mov edx, dword ptr ss:[ebp-4]
00448CE9 . |83C2 68 add edx, 68
00448CEC . |52 push edx
00448CED . |68 DC3C6900 push GameServ.00693CDC ; ASCII "[%s][%s] Try Attack In Not Attack Area [Protocol] (%s:%d,%d) errortype = %d"

00448CA2 . /0F84 81000000 je GameServ.00448D29 => jmp GameServ.00448D29

004B039D . /74 61 je short GameServ.004B0400
004B039F . |8B4D F4 mov ecx, dword ptr ss:[ebp-C]
004B03A2 . |51 push ecx
004B03A3 . |8B55 08 mov edx, dword ptr ss:[ebp+8]
004B03A6 . |0FBF82 0A0100>movsx eax, word ptr ds:[edx+10A]
004B03AD . |50 push eax
004B03AE . |8B4D 08 mov ecx, dword ptr ss:[ebp+8]
004B03B1 . |0FBF91 080100>movsx edx, word ptr ds:[ecx+108]
004B03B8 . |52 push edx
004B03B9 . |8B45 08 mov eax, dword ptr ss:[ebp+8]
004B03BC . |33C9 xor ecx, ecx
004B03BE |8A db 8A
004B03BF |88 db 88
004B03C0 > |0D db 0D
004B03C1 |01 db 01
004B03C2 |00 db 00
004B03C3 |00 db 00
004B03C4 . |81C1 D0070000 add ecx, 7D0
004B03CA . |51 push ecx
004B03CB . |B9 8812F109 mov ecx, GameServ.09F11288
004B03D0 . |FF15 88D4650C call near dword ptr ds:[<&mumsg.CMsg::Ge>; mumsg.CMsg::Get
004B03D6 . |50 push eax
004B03D7 . |8B55 08 mov edx, dword ptr ss:[ebp+8]
004B03DA . |83C2 73 add edx, 73
004B03DD . |52 push edx
004B03DE . |8B45 08 mov eax, dword ptr ss:[ebp+8]
004B03E1 . |83C0 68 add eax, 68
004B03E4 . |50 push eax
004B03E5 . |68 58AB6900 push GameServ.0069AB58 ; ASCII "[%s][%s] Try Attack In Not Attack Area (%s,%d,%d) errortype = %d"

004B039D . /74 61 je short GameServ.004B0400 => jmp short GameServ.004B0400

004480C4 |. /7E 25 jle short GameServ.004480EB
004480C6 |. |8B4D EC mov ecx, [local.5]
004480C9 |. |51 push ecx
004480CA |. |8B55 FC mov edx, [local.1]
004480CD |. |83C2 73 add edx, 73
004480D0 |. |52 push edx
004480D1 |. |8B45 FC mov eax, [local.1]
004480D4 |. |83C0 68 add eax, 68
004480D7 |. |50 push eax
004480D8 |. |68 6C3B6900 push GameServ.00693B6C ; ASCII "[Anti-Hack][CGATTACK][Distance Error] :(%s)(%s) D:%d"

004480C4 |. /7E 25 jle short GameServ.004480EB => jmp short GameServ.004480EB

GameServer_CS

0044B3B2 |. /0F84 81000000 je GameServ.0044B439
0044B3B8 |. |8B45 EC mov eax, [local.5]
0044B3BB |. |50 push eax
0044B3BC |. |8B4D FC mov ecx, [local.1]
0044B3BF |. |0FBF91 0A0100>movsx edx, word ptr ds:[ecx+10A]
0044B3C6 |. |52 push edx
0044B3C7 |. |8B45 FC mov eax, [local.1]
0044B3CA |. |0FBF88 080100>movsx ecx, word ptr ds:[eax+108]
0044B3D1 |. |51 push ecx
0044B3D2 |. |8B55 FC mov edx, [local.1]
0044B3D5 |. |33C0 xor eax, eax
0044B3D7 |. |8A82 0D010000 mov al, byte ptr ds:[edx+10D]
0044B3DD |. |05 D0070000 add eax, 7D0
0044B3E2 |. |50 push eax
0044B3E3 |. |B9 4873D605 mov ecx, GameServ.05D67348
0044B3E8 |. |FF15 88744808 call near dword ptr ds:[<&mumsg.CMsg::Ge>; mumsg.CMsg::Get
0044B3EE |. |50 push eax
0044B3EF |. |8B4D FC mov ecx, [local.1]
0044B3F2 |. |83C1 73 add ecx, 73
0044B3F5 |. |51 push ecx
0044B3F6 |. |8B55 FC mov edx, [local.1]
0044B3F9 |. |83C2 68 add edx, 68
0044B3FC |. |52 push edx
0044B3FD |. |68 44436E00 push GameServ.006E4344 ; ASCII "[%s][%s] Try Attack In Not Attack Area [Protocol] (%s:%d,%d) errortype = %d"

0044B3B2 |. /0F84 81000000 je GameServ.0044B439 => jmp GameServ.0044B439

004C1C2D |. /74 61 je short GameServ.004C1C90
004C1C2F |. |8B4D F4 mov ecx, [local.3]
004C1C32 |. |51 push ecx
004C1C33 |. |8B55 08 mov edx, [arg.1]
004C1C36 |. |0FBF82 0A0100>movsx eax, word ptr ds:[edx+10A]
004C1C3D |. |50 push eax
004C1C3E |. |8B4D 08 mov ecx, [arg.1]
004C1C41 |. |0FBF91 080100>movsx edx, word ptr ds:[ecx+108]
004C1C48 |. |52 push edx
004C1C49 |. |8B45 08 mov eax, [arg.1]
004C1C4C |. |33C9 xor ecx, ecx
004C1C4E |. |8A88 0D010000 mov cl, byte ptr ds:[eax+10D]
004C1C54 |. |81C1 D0070000 add ecx, 7D0
004C1C5A |. |51 push ecx
004C1C5B |. |B9 4873D605 mov ecx, GameServ.05D67348
004C1C60 |. |FF15 88744808 call near dword ptr ds:[<&mumsg.CMsg::Ge>; mumsg.CMsg::Get
004C1C66 |. |50 push eax
004C1C67 |. |8B55 08 mov edx, [arg.1]
004C1C6A |. |83C2 73 add edx, 73
004C1C6D |. |52 push edx
004C1C6E |. |8B45 08 mov eax, [arg.1]
004C1C71 |. |83C0 68 add eax, 68
004C1C74 |. |50 push eax

004C1C75 |. |68 B8C46E00 push GameServ.006EC4B8             ; ASCII "[%s][%s] Try Attack In Not Attack Area (%s,%d,%d) errortype = %d"

004C1C2D |. /74 61     je short GameServ.004C1C90 => jmp short GameServ.004C1C90



0044A7D4 . /7E 25     jle short GameServ.0044A7FB
0044A7D6 . |8B4D EC     mov ecx, dword ptr ss:[ebp-14]
0044A7D9 . |51         push ecx
0044A7DA . |8B55 FC     mov edx, dword ptr ss:[ebp-4]
0044A7DD . |83C2 73     add edx, 73
0044A7E0 . |52         push edx
0044A7E1 . |8B45 FC     mov eax, dword ptr ss:[ebp-4]
0044A7E4 . |83C0 68     add eax, 68
0044A7E7 . |50         push eax
0044A7E8 . |68 D4416E00 push GameServ.006E41D4             ; ASCII "[Anti-Hack][CGATTACK][Distance Error] :(%s)(%s) D:%d"

0044A7D4 . /7E 25     jle short GameServ.0044A7FB => jmp short GameServ.0044A7FB
本文出自 7j45 > 奇迹一条龙