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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 09.06.2010, 18:09   #11
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

в сурсах пх класс tencdec кажеццо.
+ ключи при отсылке иниткея с сервера не трогаем.
вроде все.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 09.06.2010 в 18:13.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Старый 09.06.2010, 18:22   #12
Новичок
 
Аватар для Алёна
 
Регистрация: 07.06.2010
Адрес: Russia
Сообщений: 14
Сказал Спасибо: 11
Имеет 1 спасибку в 1 сообщении
Алёна пока неопределено
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
+ ключи при отсылке иниткея с сервера не трогаем.
т.е. не трогаем? а как шифровать пакеты клиенту? ирасшифровывать?
__________________
Coding is my live...
Алёна вне форума   Ответить с цитированием
Старый 09.06.2010, 18:22   #13
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

ай. L2Xor класс точнее.
в том же модуле.http://l2phx.pp.ru/svn/l2phx3/3.5.x/units/uencdec.pas
генерим иниткей. отсылаем на клиент.
создаем вот такой вот класс. делаем иниткей в нем
дальше гоняем пакеты через EncryptGP/DecryptGP
иниткей на клиент приходит нексореный. все последующее - ксореное.
то же касаеться всех пакетов идущих от клиента, до того как мы ему ключ подсунем.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Старый 09.06.2010, 18:28   #14
Новичок
 
Аватар для Алёна
 
Регистрация: 07.06.2010
Адрес: Russia
Сообщений: 14
Сказал Спасибо: 11
Имеет 1 спасибку в 1 сообщении
Алёна пока неопределено
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
а где тут генерится InitKeY? Смотрю и не вижу
__________________
Coding is my live...
Алёна вне форума   Ответить с цитированием
Старый 09.06.2010, 18:43   #15
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

нигде. ключ делай рандомный. запоминай. и отсылай.
потом этот же ключ используй как параметр для метода InitKey.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Старый 09.06.2010, 18:49   #16
Новичок
 
Аватар для Алёна
 
Регистрация: 07.06.2010
Адрес: Russia
Сообщений: 14
Сказал Спасибо: 11
Имеет 1 спасибку в 1 сообщении
Алёна пока неопределено
По умолчанию

alexteam, Смотри я генерирую ключ. Отсылаю клиенту. и сразу же делаю l2xorC.initkey(мой ключ) и l2xorS.initkey(мой ключ), после того как мне отвечает клиент, я дешифрую l2xorC.DecriptGP(Pck[2],size-2), и логин считывается не корректно, т.е первые 4 символа логина считываются норм- потом вопросы, при попытке отправить список чаров ( l2xorS.EncriptGP(PckCharList[2],size-2) ) - ПХ вообще показывает не известный пакет
__________________
Coding is my live...
Алёна вне форума   Ответить с цитированием
Старый 09.06.2010, 19:14   #17
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

ай..ай..
в пх 2 екземпляра класса l2xorC и l2xorS т.к. из за того что там 4 направления. от клиента к пх и обратно и от сервера к пх и обратно.
в сервере нужен всего 1 екземпляр класса l2Xor.
DecryptGP - дешифруем пакеты от клиента
EncryptGP - Шифруем пакеты и отправляем на клиент.

Добавлено через 8 минут
хотя.. эта ошибка не должна была повлиять на декрипт первого пакета с логином от клиента.. проверяй правильно ли ты отправляешь ключ %)
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 09.06.2010 в 19:14. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
Старый 09.06.2010, 19:18   #18
Новичок
 
Аватар для Алёна
 
Регистрация: 07.06.2010
Адрес: Russia
Сообщений: 14
Сказал Спасибо: 11
Имеет 1 спасибку в 1 сообщении
Алёна пока неопределено
По умолчанию

Всёравно логин не правильно считыватся

Ключ отправляю так
Код:
PckStr:=HexToStr('2E 01 A3 E4 FA 62 A0 BD DB B4 C8 27 93 01 A1 6C 31 97 01 00 00 00 00 00 00 00 00 00 00 00 00'); - это пакет от l2j сервера без размера

CryptXor.InitKey(PckStr[2],True); // инициализирую ключ у себя

SendToClient(PckStr); // отправляю ключ клиенту
__________________
Coding is my live...

Последний раз редактировалось Алёна, 09.06.2010 в 19:21.
Алёна вне форума   Ответить с цитированием
Старый 09.06.2010, 19:39   #19
Новичок
 
Аватар для arrjj
 
Регистрация: 27.05.2010
Сообщений: 26
Сказал Спасибо: 1
Имеет 13 спасибок в 11 сообщенях
arrjj пока неопределено
По умолчанию

Код:
            switch(inptype)
            {
            case 0x2E://InitCrypt
                {
                    if(!in.readC())
                        QMessageBox::information(NULL, "L2M Alfa:Omg",
                                                 "Wrong protocol version can be troubles :'(");
                    for(int x=0;x<8;x+=1)
                    {
                        inxorkey[x]=in.readC();
                        outxorkey[x]=inxorkey[x];
                    }
                    xorkeyaccepted=true;
                    out.writeC(0x2b);
                    l2m_mstr a;
                    l2m_uch tmp[28];
                    for(int x=0;x<28;x+=1)
                        tmp[x]=0;
                    for(int x=0;x<14;x+=1)
                        tmp[x*2]=ulogin[x];
                    a.fromuch(tmp,28);
                    a.killzero();
                    out.writeS(&a,true);
                    out.writeC(0x00);
                    out.writeD(playOK[1]);
                    out.writeD(playOK[0]);
                    out.writeD(loginOK[0]);
                    out.writeD(loginOK[1]);
                    out.writeD(0);
                    out.writeD(0);
                    out.writeD(0);
                    sendpacket();
                }
                break;
}
Так у мну в клиенте а так на l2j серваке
Код:
	public void writeImpl()
	{
		writeC(0x2e);
		writeC(_id); //0 - wrong protocol, 1 - protocol ok
		for (int i = 0; i < 8; i++)
		{
			writeC(_key[i]); // key
		}
		writeD(0x01);
		writeD(0x01); // server id
		writeC(0x01);
		writeD(0x00); // obfuscation key
	}
arrjj вне форума   Ответить с цитированием
За это сообщение arrjj нажился спасибкой от:
Старый 09.06.2010, 19:52   #20
Новичок
 
Аватар для Алёна
 
Регистрация: 07.06.2010
Адрес: Russia
Сообщений: 14
Сказал Спасибо: 11
Имеет 1 спасибку в 1 сообщении
Алёна пока неопределено
По умолчанию

Код:
     PckStr:=#$2E;
     WriteC(PckStr,$01);
     WriteD(PckStr,777777);
     WriteD(PckStr,777777);
     WriteD(PckStr,666666);
     WriteD(PckStr,1);
     WriteC(PckStr,$01);
     WriteD(PckStr,0);
     WriteD(PckStr,0);
     WriteD(PckStr,0);
     CryptXor.InitKey(PckStr[2],True);   //7B 32 8B 04 77 24 90 F3
     SendToClient(PckStr);
Переписала, ничего не изменилось
__________________
Coding is my live...
Алёна вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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