Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг > Шифрации серверов
Войти через OpenID

Шифрации серверов Здесь разбираемся с алгоритмами шифрации различных серверов

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.03.2010, 01:36   #1
Пользователь
 
Регистрация: 05.03.2010
Сообщений: 46
Сказал Спасибо: 0
Имеет 14 спасибок в 9 сообщенях
Deadly пока неопределено
По умолчанию Помогите разобраться с шифровкой дешифровкой трафика

помогите разобраться с этим делом допустим как из "чистого" трафика где все время случайные байты сделать уже привычный трафик л2 и обратно читал тут все статьи ничего не нашел.
Deadly вне форума   Ответить с цитированием
Старый 05.03.2010, 13:11   #2
Рыцарь
 
Аватар для dmitry501
 
Регистрация: 01.10.2007
Сообщений: 293
Сказал Спасибо: 42
Имеет 50 спасибок в 37 сообщенях
dmitry501 пока неопределено
По умолчанию

байты трафика xor-ятся с байтами ключа, потом ключ меняется и все повторяется по кругу. Подробности в поиске, в гугле и т.д.
__________________
Цитата:
Сообщение от Stas
...Ну на хрена ты меня посылаешь гууглить или искать 140 страниц описанных где-то комманд, если я уже в сотый раз объясняю, что хочу облегчить труд многим, я же эти доводы подробно описал...
dmitry501 вне форума   Ответить с цитированием
Старый 05.03.2010, 19:21   #3
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от Deadly Посмотреть сообщение
читал тут все статьи ничего не нашел.
ой пиндеж, причем весьма нахальный ...
QaK вне форума   Ответить с цитированием
Старый 05.03.2010, 21:39   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

мне бы ваши проблемы ©
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 06.03.2010, 01:06   #5
Пользователь
 
Регистрация: 05.03.2010
Сообщений: 46
Сказал Спасибо: 0
Имеет 14 спасибок в 9 сообщенях
Deadly пока неопределено
По умолчанию

ну хз есдинственное что я понял это то что вначале с 1 пакетом приходит ключ потом каждый пришедший пакет имеет тож свой хор ключ и как то из этих 2 ключей дщелается 1 и понему расшифровывается пакет я правильно понял?

Добавлено через 11 минут
а конкретно меня интересует шифрация гейм сервера :

1)Сервер проверяет, можно ли подключится к выбранному GS, если да - сервер присылает пакет PlayOk, содержащий SessionKey2. Иначе, сервер присылает пакет PlayFail, содержащий информацию почему нельзя подключится.

ну тут все понятно

2)Сервер присылает пакет FirstKey, содержащий первые 4 байта ключа XorKey

это 1 ключ?

Добавлено через 2 минуты
а дальше мне вобще понравилось :

1.2. Шифрация пакетов GameServer'a:
Чтобы не загружать ваши и без того замученные головы, вместо алгоритмов, я дам готовые исходники (немного измененные для наглядности):
(лучшебы алгоритм блин дал я ничего непонял)

char key_sc[8];
char key_cs[8];

void Encrypt(char *raw, int size)
{
int temp = 0;
for (int i=0; i<size; i++)
{
int temp2 = raw[i] &0xff;
raw[i] = (char)(temp2 ^ (key_cs[i&7] &0xff) ^ temp);
temp = raw[i];
}
int old = key_cs[0] &0xff;
old |= key_cs[1] << 8 &0xff00;
old |= key_cs[2] << 0x10 &0xff0000;
old |= key_cs[3] << 0x18 &0xff000000;
old += size;
key_cs[0] = (char)(old &0xff);
key_cs[1] = (char)(old >> 0x08 &0xff);
key_cs[2] = (char)(old >> 0x10 &0xff);
key_cs[3] = (char)(old >> 0x18 &0xff);
}


void Decode(char *input, int size)
{
int i = 0;
int j = 0;
for(int k=0; k < size; k++)
{
int i1 = input[k] & 0xFF;
input[k] = (char)(i1 ^ key_sc[j++] & 0xFF ^i);
i = i1;
if(j>7) j=0;
}
long l = key_sc[0] & 0xFF;
l |= key_sc[1] << 8 & 0xFF00;
l |= key_sc[2] << 16 & 0xFF0000;
l |= key_sc[3] << 24 & 0xFF000000;
l += size;
key_sc[0] = (char)(l & 255L);
key_sc[1] = (char)(l >> 8 & 255L);
key_sc[2] = (char)(l >> 16 & 255L);
key_sc[3] = (char)(l >> 24 & 255L);
}


void Key(char* packet, int len)
{
key_sc[0] = packet[4];
key_sc[1] = packet[5];
key_sc[2] = packet[6];
key_sc[3] = packet[7];
key_sc[4] = (char)0xA1;
key_sc[5] = (char)0x6C;
key_sc[6] = (char)0x54;
key_sc[7] = (char)0x87;
for(i=0;i<8;i++) {key_cs[i]=key_sc[i];}
}

void add_ckecksum(unsigned char *raw, int count) //вычисляет чексумму и вставляет её в пакет
{ //как пользоватся: add_ckecksum(CelyjPaket+2, DlinaPaketa-(2+4+4));
unsigned long chksum = 0;
unsigned long ecx;
int i = 0;
for(i = 0; i < count; i += 4)
{
ecx = (unsigned long)raw[i];
ecx |= (unsigned long)raw[i + 1]<<8;
ecx |= (unsigned long)raw[i + 2]<<16;
ecx |= (unsigned long)raw[i + 3]<<24;
chksum ^= ecx;
}
memcpy(raw+count, (char *)&chksum, 4);
}

Во первых заметьте, что после каждой шифрации или дешифрации ключ которым мы пользовались, будет изменен! И обратите особое внимание, у нас два ключа!!! Одним мы шифруем пакеты, которые мы отправляем серверу, вторым мы дешифруем пакеты которые сервер присылает нам. Процедура Key из данных пакета FirstKey устанавливает нам оба ключа (изначально ключи равны друг-другу).

Да, и забыл сказать - и Blowfish, и Xor-шифрация шифруют пакет начиная с третего байта! (т.е. первые два байта, означающие размер пакета - НЕ ШИФРУЮТСЯ НИКОГДА!!!)

может кто прокоментировать этот скрипт что как в нем делается.
к моему сожелению я знаю только делфи и паскаль) в с++ я почти не шарю.

Добавлено через 12 минут
1 ключ я выделил вот он
21002E01A15F865EDD485A31C8279301A16C31970100000000 0000000000000000
(все время не меняется а дальше после него чуш идет)
а вот что дальше делать пока хз надеюсь на вашу помощ

Последний раз редактировалось Deadly, 06.03.2010 в 01:08. Причина: Добавлено сообщение
Deadly вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг > Шифрации серверов



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

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


Часовой пояс GMT +4, время: 02: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

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