n0nam3 Написал:Постфикс берется из конфига.
Кажись понял что это:
Код:
do
{
sub_1001A4A0(*(v4 + a3 - a4), &v8, *v4);
++v4;
}
while ( i-- != 1 );
Сначало вызывается sub_1001A4A0 для логина потом для какой то константы а потом дял пароля
После чего вызывается финальный метод
Добавлено через 8 минут
Ееееее
успех!!!!!
Хеш шифруется в обычном SHA256 в виде:
LOGIN@plaync.co.krASSWORD
например
admin@plaync.co.kr:root
Добавлено через 2 часа 29 минут
Код:
signed int __thiscall splitKeyData(void *this, int a2, int a3, unsigned int a4, int a5)
{
unsigned int v5; // eax@1
void *v6; // edi@1
int v7; // ebx@2
int v8; // eax@3
unsigned int *v9; // esi@5
int v10; // ebx@6
int v11; // eax@12
int v12; // eax@12
signed int result; // eax@14
int v14; // eax@14
char v15; // [sp-Ch] [bp-ECh]@12
int v16; // [sp-8h] [bp-E8h]@12
char v17; // [sp-4h] [bp-E4h]@12
char v18; // [sp+Ch] [bp-D4h]@12
char v19; // [sp+2Ch] [bp-B4h]@1
char v20; // [sp+40h] [bp-A0h]@1
char v21; // [sp+54h] [bp-8Ch]@1
char v22; // [sp+68h] [bp-78h]@1
char v23; // [sp+7Ch] [bp-64h]@14
char v24; // [sp+90h] [bp-50h]@12
char v25; // [sp+A4h] [bp-3Ch]@1
char v26; // [sp+B8h] [bp-28h]@13
char v27; // [sp+CCh] [bp-14h]@1
unsigned int v28; // [sp+F0h] [bp+10h]@1
v6 = this;
sub_1001C8C0(&v25);
sub_1001C8C0(&v27);
sub_1001C8C0(&v22);
sub_1001C8C0(&v19);
sub_1001C8C0(&v21);
sub_1001C8C0(&v20);
v5 = a4;
v28 = a4 + a5;
if ( v5 < 4 || (v7 = *a5 + 4, v5 < v7) )
{
sub_1001BD70(&v25);
v8 = 0;
}
else
{
subArray(&v25, *a5, a5 + 4);
v8 = v7;
}
v9 = (v8 + a5);
if ( v28 - (v8 + a5) < 4 || (v10 = *v9 + 4, v28 - v9 < v10) )
{
sub_1001BD70(&v27);
v10 = 0;
}
else
{
subArray(&v27, *v9, (v9 + 1));
}
if ( (v9 + v10) == v28 && sub_1001BC40(&v27, 0) && sub_1001BC80(&unk_1004578C) < 0 )
{
(*(v6 + 2))(32, &v18);
subArray(&v22, 0x20u, &v18);
sub_1001CCE0(v6 + 76, 2u, &v22, &unk_1004578C);
v16 = sub_1001BCD0(&v17);
v11 = sub_1001BCD0(&v15);
sub_10031530(&v19, v11, *&v15, v16, *&v17);
v16 = (v6 + 44);
*&v17 = 32;
v12 = sub_1001BCD0(&v15);
sub_10031530(&v21, v12, *&v15, v16, *&v17);
sub_1001C8C0(&v24);
sub_1001C8E0(&v27);
sub_1001CCE0(&v24, 2u, &v21, &unk_1004578C);
sub_1001D0D0(&v24, &unk_100457B4, &unk_1004578C);
while ( sub_1001BC80(&v24) < 0 )
sub_1001BF20(&v26, &unk_1004578C);
sub_1001C7F0(&v26, &v24);
sub_1001C8C0(&v23);
sub_1001C180(&v19, &v21);
sub_1001BF20(&v23, &v22);
sub_1001D0B0(&v23, &unk_1004578C);
sub_1001D190(&v26, &v23, &unk_1004578C);
sub_1001BEF0(&v23);
sub_1001BEF0(&v26);
sub_1001BEF0(&v24);
v14 = sub_1001BCD0(&v17);
sub_10031400(v6 + 128, v14, *&v17);
sub_100315B0(v6 + 96, v6 + 12, v6 + 76, &v27, v6 + 128);
*&v15 = &v17;
*(a3 + 8) = 0;
v16 = sub_1001BCD0(*&v15);
sub_100318C0(a3, v16, *&v17);
sub_100318C0(a3, (v6 + 96), 32);
*(v6 + 1) = 2;
*a2 = 0;
sub_1001BEF0(&v20);
sub_1001BEF0(&v21);
sub_1001BEF0(&v19);
sub_1001BEF0(&v22);
sub_1001BEF0(&v27);
sub_1001BEF0(&v25);
result = 1;
}
else
{
sub_1001BEF0(&v20);
sub_1001BEF0(&v21);
sub_1001BEF0(&v19);
sub_1001BEF0(&v22);
sub_1001BEF0(&v27);
sub_1001BEF0(&v25);
result = 0;
}
return result;
}
Парсинг ключа от сервера
Пока что нихрена не понятно кроме того что клиент юзат операции закрытого ключа(
Код:
BOOL __cdecl sub_1001D720(DWORD dwLen, BOOL a2)
{
BOOL result; // eax@2
DWORD v3; // esi@3
char v4; // [sp+0h] [bp-10h]@2
HCRYPTPROV hProv; // [sp+8h] [bp-8h]@1
unsigned int v6; // [sp+Ch] [bp-4h]@1
int v7; // [sp+10h] [bp+0h]@1
v6 = &v7 ^ __security_cookie;
hProv = 0;
if ( CryptAcquireContextA(&hProv, 0, 0, 1u, 0xF0000028u) )
{
v3 = dwLen;
_alloca_probe_16(v4);
if ( CryptGenRandom(hProv, dwLen, &v4) )
{
result = CryptReleaseContext(hProv, 0);
if ( !result )
result = sub_1001E120(2, "CryptReleaseContext failed", v4);
if ( dwLen )
{
result = a2;
do
{
*result ^= *(&v4 + result - a2);
++result;
--v3;
}
while ( v3 );
}
}
else
{
result = sub_1001E120(2, "CryptGenRandom failed", v4);
}
}
else
{
result = sub_1001E120(2, "CryptAcquireContext failed", v4);
}
return result;
}