Вернуться   CoderX :: Forums > Другие игры > Aion
Войти через OpenID

Aion Форум посвященный игре Aion

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 18.09.2009, 00:43   #1
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от GoldFinch Посмотреть сообщение
Код xor-шифрования пакета при отправке встроен в код формирования каждого пакета (inline однако).
сурово
Цитата:
Сообщение от GoldFinch Посмотреть сообщение
Пакет S_KEY (id=0x48), приходящий клиенту от сервера, содержит 32-разрядное значение для формирования начального ключа DWORD keySeed; Из данных этого пакета формируются начальные ключи для шифрования и дешифровки пакетов.
48 эт помойму на корейском (или китайском) ОБТ, к сожалению в разных регионах разное значение 2го байта пакета и следовательно значение первого байта указывающего на S_KEY тоже разное...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 18.09.2009, 01:04   #2
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 60
Сказал Спасибо: 3
Имеет 107 спасибок в 21 сообщенях
GoldFinch пока неопределено
По умолчанию

xkor, я реверсил европейский клиент
48 - id пакета - забито хардкодом в клиент

Код:
char __stdcall DispatchRecv(int a1)
{
/* ........................................................ */
  if ( dword_1833CA48 )
    return 0;
  v2 = a1;
  id = *(_BYTE *)(a1 + 12);
  if ( id <= (signed int)0xC7u )
  {
    if ( id != 0xC7 )
    {
      switch ( id )
      {
        case 0x48:
          v3 = "S_KEY";
          goto doLogPacketName;
        case 0:
          v3 = "S_VERSION_CHECK";
          goto doLogPacketName;
        case 0xD:
          v3 = "S_ENTER_WORLD_CHECK";
          goto doLogPacketName;
        case 0x17:
          v3 = "S_WAIT_LIST";
          goto doLogPacketName;
        default:
          goto processpacket;
      }
      goto processpacket;
    }
    v3 = "S_L2AUTH_LOGIN_CHECK";
    goto doLogPacketName;
  }
  v4 = id - 0xC8;
  if ( !v4 )
  {
    v3 = "S_CHARACTER_LIST";
    goto doLogPacketName;
  }
  v5 = v4 - 0x1C;
  if ( !v5 )
  {
    v3 = "S_VIRTUAL_AUTH";
    goto doLogPacketName;
  }
  if ( v5 == 27 )
  {
    v3 = "S_RECONNECT_KEY";
doLogPacketName:
    sprintf(&Dest, "[game] recv packet: %s", v3);
    (*(int (__cdecl **)(int, char *))(*(_DWORD *)g_LoggerObj + 8))(g_LoggerObj, &Dest);
  }
processpacket:
  switch ( *(_BYTE *)(v2 + 12) )
  {
    case 0:                                                     // VERSION_CHECK
      OnVersionCheck();
      dword_1833CA58 = dword_17DEA158();
      return 1;
    case 0xC7:                                                  // L2AUTH_LOGIN_CHECK
      OnL2AuthLoginCheck();
      dword_1833CA58 = dword_17DEA158();
      return 1;
    case 0xE4:                                                  // VIRTUAL_AUTH
      OnVirtualAuth();
      dword_1833CA58 = dword_17DEA158();
      return 1;
    case 0xFF:
      sub_17A76D00(
        *(_BYTE *)(*(_DWORD *)(v2 + 16) + *(_DWORD *)(v2 + 20)),
        *(_DWORD *)(*(_DWORD *)(v2 + 16) + *(_DWORD *)(v2 + 20) + 1));
      dword_1833CA58 = dword_17DEA158();
      return 1;
    case 0xC8:                                                  // CHARACTER_LIST
      OnCharacterList();
      dword_1833CA58 = dword_17DEA158();
      return 1;
    case 0xD:                                                   // ENTER_WORLD_CHECK
      OnEnterWorldChaeck();
      dword_1833CA58 = dword_17DEA158();
      return 1;
/* ........................................................ */
    case 0x48:                                                  // S_KEY packet
      OnKeyRecv((*(_DWORD *)(*(_DWORD *)(v2 + 20) + *(_DWORD *)(v2 + 16)) - 1072876679) ^ 0xCD92E451);
      dword_1833CA58 = dword_17DEA158();
      return 1;
/* ........................................................ */
GoldFinch вне форума   Ответить с цитированием
За это сообщение GoldFinch нажился 4 спасибками от:
Старый 18.09.2009, 01:16   #3
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

GoldFinch, жесть, получается они там между ЗБТ и ОБТ ручками id всех пакетов меняли...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 19.09.2009, 14:05   #4
Пользователь
 
Регистрация: 05.09.2008
Сообщений: 49
Сказал Спасибо: 3
Имеет 10 спасибок в 6 сообщенях
Jes пока неопределено
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
GoldFinch, жесть, получается они там между ЗБТ и ОБТ ручками id всех пакетов меняли...
нет - это обычный enum
пересортировали энум и фсе
__________________
я ничего не знаю!
Jes вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Другие игры > Aion



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:22.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!