Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 14.01.2011, 15:41   #1
Новичок
 
Регистрация: 12.01.2011
Сообщений: 16
Сказал Спасибо: 2
Имеет 0 спасибок в 0 сообщенях
Brave пока неопределено
По умолчанию

Собственно разобрав пример который мне прислал уважаемых alexteam я составил алгоритм действий, который опишу ниже для того чтобы знатоки
откорректировали недочёты, если они есть, и тема была полезна для других пользователей.
Собствено алгоритм:
Сразу хочется сказать что размер пакета отрезаеться при его получении и добаляеться при его отправке
то есть пакет состоит из структуры:
packet=record
size:word//размер пакета
Data:array [0..size]of byte;//собственно данные с которыми мы проводим операции.
end;

1. Создаём соединение с логин сервером.
2. Принимаем пакет Init.
2.1 Расшифровываем Data при помощи ХОR ключа содержащегося в последних 4-х байтах
2.2 Расшифровываем Data статическим ключом BlowFish.
2.3 Запоминаем SessionID 4 байта. RSA ключ 128 байт. Новый BlowFish ключ 16 байт.
3.Отправляем пакет RequestGGAuth c SessionID, который взяли из пакета Init.Добавили ЧекСумму.Зашифровали BlowFish.
4.Приняли ответ GGAuth от сервера.
4.1 Расшифровали его BlowFish.
4.2 Запоминаем GGAuthResponse
Теперь у нас есть все данные чтобы авторизироваться на сервере.
5. Зашифровываем логин и пароль при помощи RSA.
5.1 Формируем пакет RequestAuthLogin:128 байт Зашифрованного логина и пароля.В 129 байт пишем 4 байта с GGAuthResponse.
В 149 байт ставим 8. Добавляем чек сумму 160 байт.
5.2 Зашифровываем пакет BlowFish из пакета Init.
6. Отправляем.
7.Принимаем, все ли правильно сделали. =)

Жду ответов. Так же хочется узнать об изменениях этого алгоритма в зависимости от хроник.

А еще чуть не забыл спросить. Что такое Ревизия?? Я это слово встречал на сборках серверов, а есть ли она у клиента?
Brave вне форума   Ответить с цитированием
Старый 15.01.2011, 23:10   #2
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

Цитата:
Сообщение от Brave Посмотреть сообщение
2.1 Расшифровываем Data при помощи ХОR ключа содержащегося в последних 4-х байтах
2.2 Расшифровываем Data статическим ключом BlowFish.
по моему наоборот, сначала BlowFish'ем дешифруем а потом уже XOR

Добавлено через 12 минут
Цитата:
Сообщение от Brave Посмотреть сообщение
Что такое Ревизия??
это порядковый номер под который присвоен сорцам текущей версии при заливке в систему контроля версий
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 15.01.2011 в 23:10. Причина: Добавлено сообщение
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 08.02.2011, 23:05   #3
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

у меня примерно из этой же оперы вопрос:

init по версии 785a должен содержать 11 байт.
например:
Сервер, Length: 11 (0x0B)
-------------------------------------------------------
0x0000| 0B 00 00 9C 77 ED 03 5A 78 00 00
-------------------------------------------------------
вроде все верно. но вот что меня заинтересовало: в одном из серверов я увидел это:

Сервер, Length: 155 (0x9B)
*-------------------------------------------------------*
0x0000| 9B 00 00 FD 8A 22 00 5A 78 00 00 E5 FB 6D E3 DE
0x0010| D5 FC 45 42 B8 84 01 26 73 C3 FF BD 0B 32 FA B6
0x0020| F9 CA 0E 48 0F 94 7A CC C1 AF FE B5 76 5C B0 9D
0x0030| 6E 5A 73 EE 77 12 67 47 1C 78 D2 9B 22 D1 38 90
0x0040| 60 82 53 14 1C B2 04 D6 75 29 47 08 56 8C 81 63
0x0050| 14 93 B1 47 2C B8 F9 23 DB 09 8C 87 56 36 02 92
0x0060| BA 25 57 51 9E 33 8D 40 6E E0 3D A7 CA 9A 69 D6
0x0070| 07 AE 60 25 5C 47 C8 55 5A 07 83 E5 B8 0B 85 FF
0x0080| 62 66 07 B9 D4 E4 D3 65 DD 3C F4 00 00 00 00 00
0x0090| 00 00 00 00 00 00 00 00 00 00 00

155 байт. Третьи хроники.

Почему так ?

Добавлено через 20 минут
согласно вот этому:
Код:
procedure LS_init(buff: array of byte; Len: integer);
begin
ToLog('********* LS_init ************');
ToLog('');
  if Len<8 then exit;
  Move(buff[3],SessionID,4);
  if Len>=155 then begin
    SetLength(RSA_key,128);
    Move(buff[11],RSA_key[1],128);
    ToLog('RSA Key changed :');
  end;
  if Len>=171 then begin
    SetLength(bf_key,16);
    Move(buff[155],bf_key[1],16);
    bf.Init(bf_key);
    ToLog('BlowFish key changed');
  end;
  //sending AuthGG packet
  AuthGameGuard;
end;
в 785a возможно RSA шифрование логина и пароля.

Последний раз редактировалось Кислый, 08.02.2011 в 23:06. Причина: Добавлено сообщение
Кислый вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

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

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