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

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

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

guplen, ты описал ксор шифрацию гейм сервера, на логин сервере первый пакет ксором дешифруется так:
delphi Код:
procedure LoginXORDecrypt(var xpck: TFixPck); var   i,k: Integer; begin   i:=xpck.size-8; // узнаем номер первого байта ключа (186-8=178)   k:=PInteger(@xpck.ch[i])^; // записываем ключ в 4хбайтовую переменную   while i>=6 do begin // пока позиция больше или равна 6     PInteger(@xpck.ch[i])^:=PInteger(@xpck.ch[i])^ xor k; // ксорим очередные 4 байта на ключ     k:=k-PInteger(@xpck.ch[i])^; // вычитаем из ключа то что получилось     i:=i-4; // перемещаемся к предыдущим 4м байтам   end; end; // усё  
короче тут не по одному байту ксорим а по 4, хотя в яве наверно ксорят по одному ибо там сложности с приведением типов...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 09.07.2009, 16:14   #82
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Тогда такой вопрос, возможно даже глупый:
Есть последовательность из 4 байтов, которые являются ключом. И чтобы мне эту последовательность записать в переменную типа int, надо эти 4 байта ключа перевести в число? Или как?
guplen вне форума   Ответить с цитированием
Старый 09.07.2009, 16:40   #83
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

guplen, бля переменная int это и есть 4 байта, тупо их туда пишеш и всё, ты что с памятью работать не умеешь?
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 09.07.2009, 19:31   #84
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Про размеры знаю... лана, пашел книжки читать

Добавлено через 2 часа 43 минуты
Все получилось, всем спасибо... буду разбираться дальше.

Последний раз редактировалось guplen, 09.07.2009 в 19:31. Причина: Добавлено сообщение
guplen вне форума   Ответить с цитированием
Старый 09.07.2009, 19:38   #85
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

guplen, а дальше тебя ждет злой алгоритм RSA .
Yegor вне форума   Ответить с цитированием
За это сообщение Yegor нажился спасибкой от:
Старый 09.07.2009, 19:44   #86
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Для него вроде бы есть конкретные реализации на языке с++... а его, я так понимаю, никак не проверишь на правильность после дешифровки
guplen вне форума   Ответить с цитированием
Старый 09.07.2009, 21:26   #87
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

guplen, для его дешифрации нужен секретная часть ключа которую сервер не присылает. Я когда это делал то брал сохраненный лог пакетов между клиентом и сервером и зная логин и пароль пытался добиться такого же пакета.
Yegor вне форума   Ответить с цитированием
За это сообщение Yegor нажился спасибкой от:
Старый 13.07.2009, 08:07   #88
Пользователь
 
Аватар для Maxno
 
Регистрация: 26.05.2009
Сообщений: 70
Сказал Спасибо: 32
Имеет 13 спасибок в 10 сообщенях
Maxno пока неопределено
Печаль как впихнуть сюда deScrambleRSAKey?

Код:
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;
и еще, Yegor, ты на каком серве прошёл авторизацию? не подкинешь свои сорцы? буду благодарен
__________________
Home site - www.xmlex.ru
Maxno вне форума   Ответить с цитированием
Старый 13.07.2009, 13:47   #89
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Maxno, сорцы на паскале, библиотека использована общедоступная, пиши в личку аську я тебе пришлю пример.
Yegor вне форума   Ответить с цитированием
За это сообщение Yegor нажился спасибкой от:
Старый 16.07.2009, 09:51   #90
Пользователь
 
Аватар для Maxno
 
Регистрация: 26.05.2009
Сообщений: 70
Сказал Спасибо: 32
Имеет 13 спасибок в 10 сообщенях
Maxno пока неопределено
По умолчанию

Народ а передача между GameServer и Client - шифруется как то?
__________________
Home site - www.xmlex.ru
Maxno вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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