15.05.2013, 14:47
|
#20
|
Пользователь
Регистрация: 06.01.2012
Сообщений: 98
Сказал(а) спасибо: 12
Поблагодарили 33 раз(а) в 21 сообщениях
|
SMSG_AUTH_CHALLENGE 16826 никак не могу найти в IDA порядок сидов...кто может помочь?
Код:
signed int __thiscall RealmConnection__HandleAuthChallenge(int this, void *a2)
{
int v2; // ecx@1
int v3; // esi@1
char *v4; // eax@3
signed int v5; // ebx@3
int v6; // eax@3
int v7; // ecx@3
char v8; // dl@3
int v9; // eax@3
char v10; // cl@4
int v11; // eax@9
int v12; // eax@9
int v13; // ecx@9
int v14; // edx@9
int v15; // eax@9
char v16; // cl@10
char v18; // [sp+4h] [bp-5F8h]@3
int v19; // [sp+14h] [bp-5E8h]@9
char v20; // [sp+18h] [bp-5E4h]@11
int v21; // [sp+2Ch] [bp-5D0h]@9
int v22; // [sp+34h] [bp-5C8h]@9
int v23; // [sp+38h] [bp-5C4h]@9
int v24; // [sp+3Ch] [bp-5C0h]@3
int v25; // [sp+40h] [bp-5BCh]@9
char v26; // [sp+44h] [bp-5B8h]@3
int v27; // [sp+48h] [bp-5B4h]@3
char v28; // [sp+4Ch] [bp-5B0h]@3
__int16 v29; // [sp+4Eh] [bp-5AEh]@3
char v30; // [sp+50h] [bp-5ACh]@3
char v31; // [sp+550h] [bp-ACh]@9
int v32; // [sp+554h] [bp-A8h]@11
int v33; // [sp+57Ch] [bp-80h]@9
char v34; // [sp+5D8h] [bp-24h]@12
char v35; // [sp+5ECh] [bp-10h]@3
int v36; // [sp+5F4h] [bp-8h]@3
int v37; // [sp+5F8h] [bp-4h]@9
v3 = this;
v2 = *(_DWORD *)(this + 18224);
if ( v2 )
(*(void (__stdcall **)(int, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v2 + 24))(v3, "SMSG_AUTH_CHALLENGE", 0, 0);
*(_BYTE *)(v3 + 18240) = 0;
SecureRandom__Seed(0);
v6 = OsGetAsyncTimeMs();
SecureRandom__Seed(v6);
sub_7023D0(&v18);
v7 = *(_DWORD *)(v3 + 1284);
v8 = *(_BYTE *)(v3 + 1328);
v29 = 16826;
v26 = 1;
v27 = v7;
v28 = v8;
v9 = SecureRandom__GetHash(&v35);
v24 = v9;
v36 = v9;
v4 = &v30;
v5 = 1279;
while ( 1 )
{
v10 = v4[v3 + 4 - (_DWORD)&v30];
*v4++ = v10;
if ( !v10 )
break;
--v5;
if ( !v5 )
goto LABEL_8;
}
if ( v5 )
goto LABEL_9;
LABEL_8:
*v4 = 0;
LABEL_9:
v12 = *(_DWORD *)(v3 + 18276);
v13 = *(_DWORD *)(v3 + 18280);
v19 = *(_DWORD *)(v3 + 18272);
v14 = *((_DWORD *)a2 + 2);
v21 = v12;
v15 = *((_DWORD *)a2 + 3);
v25 = v13;
v22 = v14;
v23 = v15;
v37 = 0;
v31 = *(_DWORD *)(dword_F7DB40 + 48) != 0;
SHA1__Init(&v33);
v11 = v3 + 4;
do
v16 = *(_BYTE *)v11++;
while ( v16 );
SHA1__Update((int)&v33, (void *)(v3 + 4), v11 - (v3 + 5));
SHA1__Update((int)&v33, &v37, 4);
SHA1__Update((int)&v33, &v36, 4);
SHA1__Update((int)&v33, a2, 4);
SHA1__Update((int)&v33, (void *)(v3 + 1288), 40);
SHA1__Final(&v20, &v33);
WriteAddOns(&v32);
(*(void (__thiscall **)(int *))(v32 + 28))(&v32);
NetClient__Send(&v18, 2);
if ( !*(_DWORD *)(dword_F7DB18 + 48) )
{
sub_701BB0(&v34);
NetClient__Send(&v34, 2);
sub_7578B0(&v34);
}
sub_702350(&v18);
return 1;
}
|
|
|