奇迹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 |