Originally Posted by
Coldieee
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 a1, char a2, __int16 a3, int a4, int 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(a1, a2, a3, a4, a5, v13e7844c, v13e78450, v13e78454) )
return (void *)sub_8122B2E(15, "SV_AuthorizeIpPacket: not from authorize server\n");
v5 = "%s%s\t\n" + 6;
if ( *(_DWORD *)(4 * v8879a40 + 0x8879A84) > 1 )
v5 = *(const char **)(*(_DWORD *)(4 * v8879a40 + 0x8879AA4) + 4);
v6 = __strtol_internal(v5, 0, 10, 0);
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 *)(4 * v8879a40 + 0x8879A84);
v16 = 136494744;
if ( v9 > 2 )
{
v16 = *(_DWORD *)(*(_DWORD *)(4 * v8879a40 + 0x8879AA4) + 8);
v17 = 136494744;
if ( v9 <= 3 )
{
LABEL_9:
v10 = "%s%s\t\n" + 6;
if ( v9 <= 5 )
goto LABEL_10;
goto LABEL_17;
}
}
else
{
v17 = 136494744;
if ( v9 <= 3 )
goto LABEL_9;
}
v17 = *(_DWORD *)(*(_DWORD *)(4 * v8879a40 + 0x8879AA4) + 12);
v10 = "%s%s\t\n" + 6;
if ( v9 > 5 )
LABEL_17:
v10 = *(const char **)(*(_DWORD *)(4 * 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(v17, 136518348) )
{
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