Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Blade and Soul Source
#31
В общем в клиенте изменена функция SHA256
Она позволяет установить "глубину" хеша!
Для логина она дописывает "@plaync.co.kr" и вычисляется с глубиной в один проход и в три прохода
Пока что не могу понять для чего 3 и для чего 1...
Если кто то разобрался - помогите плиз
Код:
H0 = 1779033703;
  H1 = -1150833019;
  H2 = 1013904242;
  H3 = -1521486534;
  H4 = 1359893119;
  H5 = -1694144372;
  H6 = 528734635;
  H7 = 1541459225;
  if ( loopCount )
  {
    i = loopCount;
    do
    {
      sub_1001A4A0(*(v4 + a3 - a4), &v8, *v4);
      ++v4;
    }
    while ( i-- != 1 );
  }
  return SHA2MLoop(a1, &v8);
Ответ
#32
Dolwin;348399 Написал:Для логина она дописывает "@plaync.co.kr"
Постфикс берется из конфига.
Личный кабинет под любую игру или множество игр. Система мастер аккаунтов. Для серьезных клиентов. Связь - ПМ.
Ответ
#33
n0nam3 Написал:Постфикс берется из конфига.

Кажись понял что это:
Код:
do
    {
      sub_1001A4A0(*(v4 + a3 - a4), &v8, *v4);
      ++v4;
    }
    while ( i-- != 1 );

Сначало вызывается sub_1001A4A0 для логина потом для какой то константы а потом дял пароля
После чего вызывается финальный метод

Добавлено через 8 минут
Ееееее
успех!!!!!
Хеш шифруется в обычном SHA256 в виде:
LOGIN@plaync.co.krTongueASSWORD
например
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;
}
Ответ
#34
Решил немного помогать этому проекту и делиться некоторыми наработками. Так что дела пойдут в гору.
Ответ
#35
рад что комьюнити объединяется
l2jfree | M.O.R.F. | A.P.S. | Aion | GW2 | BnS
Ответ
#36
Добавлены базовые роуты и базовые ключи для обмена ключами
https://github.com/OpenBNS/server/blob/m...ndler.java
https://github.com/OpenBNS/server/blob/m...nager.java
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Я хочу приобрести последние файлы сервера Blade Soul Sakura 0 2,586 11-05-2020, 02:28 PM
Последний пост: Sakura
  Blade & Soul Dat Update [UOSEDALB] CriticalError 0 2,916 06-30-2020, 06:26 PM
Последний пост: CriticalError
  Source c# Blade & Soul Exile03 2 13,566 11-23-2016, 01:56 PM
Последний пост: bola
  Blade And Soul эмулятор (Atomix исходники) Manguster 44 39,225 08-28-2016, 03:59 PM
Последний пост: Gitty32
  Blade&Soul нужна помощь с сервером KoToWeD 0 4,094 08-15-2016, 03:48 AM
Последний пост: KoToWeD
  Перевод игры Blade and Soul luna9966 101 54,650 03-22-2015, 01:14 PM
Последний пост: RogerUP
  Куплю файлы Blade and soul nokxx 0 3,796 09-16-2014, 04:03 PM
Последний пост: nokxx
  [Korea] Blade and Soul GameGuard Killer Deazer 21 12,451 06-16-2014, 04:08 PM
Последний пост: djoneill
  Open source Blade & Soul Scala Server Emulator hex1r0 64 34,080 02-25-2014, 04:01 PM
Последний пост: KalasH[UA]
  Blade and Soul .upk unpack/repack lorddblade 6 15,272 01-22-2014, 08:09 AM
Последний пост: <~Kp@$o†ka~>

Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)