Results 1 to 10 of 25

Thread: [COD4]How to make cracked server show in master list?

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    ... connecting
    Join Date
    May 2014
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hi,

    I'm also attempting this and had the same issue as jankarl ^^^

    Anyone know the solution? Cheers

  2. #2
    Global Mossaderator Mitch's Avatar
    Join Date
    Nov 2012
    Posts
    654
    Thanks
    204
    Thanked 450 Times in 305 Posts
    Quote Originally Posted by Coldieee View Post
    Hi,

    I'm also attempting this and had the same issue as jankarl ^^^

    Anyone know the solution? Cheers
    I will look into the porting my cracked solution from cod4 to cod2 when i got time.

    See:
    https://github.com/kungfooman/libcod...ter/libcod.cpp (hook call of AuthorizeState: line 1944)
    https://github.com/kungfooman/libcod.../functions.hpp (requires addresses of Cmd_Argv, Cvar_VariableValue and hook_AuthorizeState_call)

    Ok, it seems that my cracked solution from cod2 doesn't work in cod4. Cvar_VariableValue should be 0x0819E7C0.

    PHP Code:
    void *__cdecl sub_816FE18(int a1char a2__int16 a3int a4int a5)
    {
      const 
    char *v5// edx@2
      
    __int32 v6// eax@4
      
    int v7// edx@4
      
    int v8// esi@4
      
    signed int v9// edx@7
      
    const char *v10// ebx@9
      
    void *result// eax@15
      
    int v12// eax@35
      
    int v13// [sp+18h] [bp-430h]@13
      
    int v14// [sp+18h] [bp-430h]@24
      
    char *v15// [sp+18h] [bp-430h]@40
      
    signed int v16// [sp+34h] [bp-414h]@7
      
    signed int v17// [sp+38h] [bp-410h]@8
      
    char v18// [sp+3Ch] [bp-40Ch]@42

      
    if ( !sub_813C0C4(a1a2a3a4a5v13e7844cv13e78450v13e78454) )
        return (
    void *)sub_8122B2E(15"SV_AuthorizeIpPacket: not from authorize server\n");
      
    v5 "%s%s\t\n" 6;
      if ( *(
    _DWORD *)(v8879a40 0x8879A84) > )
        
    v5 = *(const char **)(*(_DWORD *)(v8879a40 0x8879AA4) + 4);
      
    v6 __strtol_internal(v50100);
      
    v8 0;
      
    v7 0;
      while ( 
    v6 != *(_DWORD *)(v7 333857868) )
      {
        ++
    v8;
        
    v7 += 80;
        if ( 
    v8 == 1024 )
          return (
    void *)sub_8122B2E(15"SV_AuthorizeIpPacket: challenge not found\n");
      }
      *(
    _DWORD *)(80 v8 0x13E64454) = v90b4f84;
      
    v9 = *(_DWORD *)(v8879a40 0x8879A84);
      
    v16 136494744;
      if ( 
    v9 )
      {
        
    v16 = *(_DWORD *)(*(_DWORD *)(v8879a40 0x8879AA4) + 8);
        
    v17 136494744;
        if ( 
    v9 <= )
        {
    LABEL_9:
          
    v10 "%s%s\t\n" 6;
          if ( 
    v9 <= )
            goto 
    LABEL_10;
          goto 
    LABEL_17;
        }
      }
      else
      {
        
    v17 136494744;
        if ( 
    v9 <= )
          goto 
    LABEL_9;
      }
      
    v17 = *(_DWORD *)(*(_DWORD *)(v8879a40 0x8879AA4) + 12);
      
    v10 "%s%s\t\n" 6;
      if ( 
    v9 )
    LABEL_17:
        
    v10 = *(const char **)(*(_DWORD *)(v8879a40 0x8879AA4) + 20);
    LABEL_10:
      if ( !
    sub_81AAAE2(v16"deny") )
      {
        if ( !
    v17 || !*(_BYTE *)v17 )
          goto 
    LABEL_45;
        if ( !
    sub_81AAAE2(v17"CLIENT_UNKNOWN_TO_AUTH") || !sub_81AAAE2(v17136518348) )
        {
          
    v13 = (int)"needcdkey";
          goto 
    LABEL_14;
        }
        if ( 
    sub_81AAAE2(v17"INVALID_CDKEY") )
        {
          
    sub_81AAAE2(v17"BANNED_CDKEY");
          
    v13 = (int)"error\nEXE_ERR_BAD_CDKEY";
        }
        else
        {
    LABEL_45:
          
    v13 = (int)"error\nEXE_ERR_CDKEY_IN_USE";
        }
    LABEL_14:
        
    sub_813D086(
          
    1,
          *(
    _DWORD *)(80 v8 0x13E64438),
          *(
    _DWORD *)(80 v8 0x13E6443C),
          *(
    _DWORD *)(80 v8 0x13E64440),
          *(
    _DWORD *)(80 v8 0x13E64444),
          *(
    _DWORD *)(80 v8 0x13E64448),
          
    v13);
        return 
    memset((void *)(80 v8 333857848), 00x50u);
      }
      if ( 
    strcmp((const char *)(80 v8 333857892), v10) )
      {
        
    sub_8122B2E(
          
    15,
          
    "rejecting connection due to mismatched GUID: expected \"%s\", got \"%s\"\n",
          
    80 v8 333857892,
          
    v10);
        
    v14 = (int)"error\nEXE_ERR_BAD_CDKEY";
    LABEL_25:
        
    sub_813D086(
          
    1,
          *(
    _DWORD *)(80 v8 0x13E64438),
          *(
    _DWORD *)(80 v8 0x13E6443C),
          *(
    _DWORD *)(80 v8 0x13E64440),
          *(
    _DWORD *)(80 v8 0x13E64444),
          *(
    _DWORD *)(80 v8 0x13E64448),
          
    v14);
        return 
    memset((void *)(80 v8 333857848), 00x50u);
      }
      if ( !
    sub_81AAAE2(v16"demo") )
      {
        if ( !(
    unsigned __int8)sub_819E7C0("fs_restrict") )
        {
          
    v14 = (int)"error\nEXE_ERR_NOT_A_DEMO_SERVER";
          goto 
    LABEL_25;
        }
        goto 
    LABEL_35;
      }
      
    result = (void *)sub_81AAAE2(v16"accept");
      if ( 
    result )
      {
        if ( 
    v17 && *(_BYTE *)v17 )
        {
          
    sprintf(&v18"error\n%s"v17);
          
    v15 = &v18;
        }
        else
        {
          
    v15 "error\nEXE_ERR_BAD_CDKEY";
        }
        
    sub_813D086(
          
    1,
          *(
    _DWORD *)(80 v8 0x13E64438),
          *(
    _DWORD *)(80 v8 0x13E6443C),
          *(
    _DWORD *)(80 v8 0x13E64440),
          *(
    _DWORD *)(80 v8 0x13E64444),
          *(
    _DWORD *)(80 v8 0x13E64448),
          
    v15);
        return 
    memset((void *)(80 v8 333857848), 00x50u);
      }
      if ( !*(
    _DWORD *)(80 v8 0x13E64460) )
      {
    LABEL_35:
        
    v12 sub_81A9F8A("challengeResponse %i", *(_DWORD *)(80 v8 0x13E6444C));
        
    result = (void *)sub_813D086(
                           
    1,
                           *(
    _DWORD *)(80 v8 0x13E64438),
                           *(
    _DWORD *)(80 v8 0x13E6443C),
                           *(
    _DWORD *)(80 v8 0x13E64440),
                           *(
    _DWORD *)(80 v8 0x13E64444),
                           *(
    _DWORD *)(80 v8 0x13E64448),
                           
    v12);
      }
      return 
    result;

    You could hook all the calls in this function to sub_81AAAE2. (which compares the state with deny or accept)
    Last edited by Mitch; 8th May 2014 at 21:07.

  3. The Following User Says Thank You to Mitch For This Useful Post:

    kung foo man (8th May 2014)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •