三角洲3陆地勇士局域网对战的突破

本文揭示了游戏联机对战时登录失败的原因,是由于游戏中加入的一段特殊代码所致。通过调试,作者已找到解决方法。分享此小秘密,避免其他玩家遇到相同问题。
   一款古老的游戏,不知道你是否玩过?在局域网联机对战时登录不上的原因恐怕没有人知道,其实是游戏加了一段特殊代码的缘故。通过调试已解决!不知道这世界上还有没有第二个人知道这个小秘密,游戏开发者除外。

                                      cmp     dword_59D2BC, esi
.text:00487A2D                 jz      loc_487AF7      //单机跳
.text:00487A33                 cmp     dword_59D2C4, esi
.text:00487A39                 jnz     loc_487B42       //联网服务端跳
.text:00487A3F                 push    offset aStrltext2 ; "STRLTEXT2"
.text:00487A44                 push    offset aLoadingText ; "Loading Text"
.text:00487A49                 call    sub_485B10
.text:00487A4E                 push    eax             ; Format
.text:00487A4F                 call    sub_487880
.text:00487A54                 add     esp, 0Ch
.text:00487A57                 call    sub_40D450
.text:00487A5C                 mov     edi, 1
.text:00487A61                 cmp     eax, edi
.text:00487A63                 jnz     short loc_487A79   //联网客户端跳
.text:00487A65                 push    offset aGameLoop ; "Game Loop"
.text:00487A6A                 call    sub_489D80
.text:00487A6F                 add     esp, 4
.text:00487A72                 pop     edi
.text:00487A73                 pop     esi
.text:00487A74                 pop     ebp
.text:00487A75                 add     esp, 0Ch
.text:00487A78                 retn

 


0059E63A                    4C 6F 61 64 69 6E 67 20 4D 69        Loading Mi
0059E64A  73 73 69 6F 6E 2E 2E 2E                                   ssion...

0059E73A                    50 72 65 70 61 72 69 6E 67 20         Preparing
0059E74A  45 71 75 69 70 6D 65 6E 74 2E                           Equipment.

0059E83A                    41 6E 61 6C 79 7A 69 6E 67 20         Analyzing
0059E84A  4D 69 73 73 69 6F 6E 20 54 6F 70 6F 67 72 61 70  Mission Topograp
0059E85A  68 79 2E 2E 2E                                                  hy...

 

00487D4E  |.  68 04E65000   PUSH Dflw.0050E604                       ;  Not enough virtual memory available!
00487D53  |.  E8 68FAFFFF   CALL Dflw.004877C0
00487D58  |.  68 FFFFFF00   PUSH Dflw.00FFFFFF
00487D5D  |.  68 DCE55000   PUSH Dflw.0050E5DC                       ;  Please lower video detail settings...
00487D62  |.  E8 59FAFFFF   CALL Dflw.004877C0
00487D67  |.  68 FFFFFF00   PUSH Dflw.00FFFFFF
00487D6C  |.  68 C0E55000   PUSH Dflw.0050E5C0                       ;  Aborting mission load...
00487D71  |.  E8 4AFAFFFF   CALL Dflw.004877C0

004879C9  |. /75 0D         JNZ SHORT Dflw.004879D8
004879CB  |. |68 78E65000   PUSH Dflw.0050E678                       ;  unable to load mission file!

00487B76  |.  85C0          TEST EAX,EAX
00487B78  |.  75 0D         JNZ SHORT Dflw.00487B87
00487B7A  |.  68 78E65000   PUSH Dflw.0050E678                       ;  Unable to load mission file!

00491AF5  |.  85C0          TEST EAX,EAX
00491AF7  |.  74 45         JE SHORT Dflw.00491B3E
00491AF9  |.  8B4424 04     MOV EAX,DWORD PTR SS:[ESP+4]
00491AFD  |.  A3 E4175900   MOV DWORD PTR DS:[5917E4],EAX
00491B02  |.  A1 E0175900   MOV EAX,DWORD PTR DS:[5917E0]
00491B07  |.  85C0          TEST EAX,EAX
00491B09  |.  74 33         JE SHORT Dflw.00491B3E
00491B0B  |.  33C9          XOR ECX,ECX
00491B0D  |.  66:8B0D A0CA5>MOV CX,WORD PTR DS:[58CAA0]
00491B14  |.  51            PUSH ECX
00491B15  |.  50            PUSH EAX


三角洲3陆地勇士最终修改如下:
0040D5F7  |.  A1 488AE200   MOV EAX,DWORD PTR DS:[E28A48]
0040D5FC  |.  85C0          TEST EAX,EAX
0040D5FE  |.  75 44         JNZ SHORT Dflw.0040D644
0040D600  |>  E8 9B820900   /CALL Dflw.004A58A0
0040D605  |.  E8 B6950900   |CALL Dflw.004A6BC0
0040D60A  |.  85C0          |TEST EAX,EAX
0040D60C  |.  74 04         |JE SHORT Dflw.0040D612
0040D60E  |.  3C 1B         |CMP AL,1B
0040D610  |.  74 37         |JE SHORT Dflw.0040D649
0040D612  |>  FFD7          |CALL EDI
0040D614  |.  2BC6          |SUB EAX,ESI
0040D616  |.  83F8 64       |CMP EAX,64                              ;  CMP EAX,64   将64改为0即可
0040D619  |.  7C 20         |JL SHORT Dflw.0040D63B
0040D61B  |.  FFD7          |CALL EDI
0040D61D  |.  8BF0          |MOV ESI,EAX
0040D61F  |.  E8 1CBF0000   |CALL Dflw.00419540
0040D624  |.  85C0          |TEST EAX,EAX
0040D626  |.  74 05         |JE SHORT Dflw.0040D62D
0040D628  |.  E8 130D0000   |CALL Dflw.0040E340
0040D62D  |>  E8 FEF2FFFF   |CALL Dflw.0040C930
0040D632  |.  A1 D0D95900   |MOV EAX,DWORD PTR DS:[59D9D0]
signed int __cdecl sub_40D5B0()
{
  DWORD v0; //
esi@1
  int v1; // eax@2
  signed int result; // eax@9

  dword_E28A50 = 0;
  dword_4E86C8 = 1;
  sub_4A58A0();
  sub_40B640(4, 0, 0);
  sub_40C930();
  sub_4A58A0();
  dword_E28A48 = 0;
  v0 = GetTickCount();
  if ( dword_E28A48 )
  {
LABEL_9:
    result = 0;
  }
  else
  {
    while ( 1 )
    {
      sub_4A58A0();
      v1 = sub_4A6BC0();
      if ( v1 && (_BYTE)v1 == 27 )
        return 3;
      if ( (signed int)(GetTickCount() - v0) >= 0x64 ) //  CMP EAX,64   将64改为0即可
      {
        v0 = GetTickCount();
        if ( sub_419540() )
          sub_40E340();
        sub_40C930();
        if ( dword_59D9D0 )
          break;
      }
      if ( dword_E28A48 )
        goto LABEL_9;
    }
    result = 1;
  }
  return result;
}

 

Just one byte!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值