значит я правельно сделал)
5B 00 00 D0 00 00 00 00 CE 6D 07 DC E5 8D E9 48 - Bytes, ключ
как я понял размер ключа 10 потому что "00" не учитывается а то меня это слека напрягает
Kitsune
18.04.2012, 15:40
потому что "00" не учитывается а то меня это слека напрягает
О каком 0 речь идет?
Skuka.95
18.04.2012, 15:43
5B 00 00 D0 00 00 00 00 CE 6D 07 DC E5 8D E9 48 - Bytes, ключ
ну вот
размел ключа 10 - это получается если не считать "00"
Kitsune
18.04.2012, 15:52
это получается если не считать "00"
Да какой 00 не считать? /dgs
Тип авторизации?
Skuka.95
18.04.2012, 16:18
Да какой 00 не считать?
издеваешься ? я про нули в общем, потому что если их считать то размер ключа 16
Kitsune
18.04.2012, 16:49
издеваешься ? я про нули в общем, потому что если их считать то размер ключа 16
Так длина ключа и есть 16... Не чуби...
0х10 = 16
Skuka.95
18.04.2012, 16:56
Так длина ключа и есть 16... Не чуби...
0х10 = 16
ааа =(
Добавлено через 3 часа 8 минут
значит теперь надо послать пакет 0x3
такого вида
Opcode Byte // 0x03
PacketLen Byte //Длина пакета начиная со следущего байта
LoginLength Byte //Длина логина
Login Byte[LoginLength] //Логин
HashLen Byte //Длина хэши
Hash Byte[HashLen] //Хэш
MD5 Authorize:
Hash = HMAC_MD5(MD5(Login+Password),Key1); //Ключ из пакета SM_SERVERINFO
и в ответ получим 0x2
а дальше что ?
п.с. ненадо меня посылать на пв лаб
и да я знаю что чубарый)
TeedI
18.04.2012, 20:24
ааа =(
Добавлено через 3 часа 8 минут
значит теперь надо послать пакет 0x3
такого вида
и в ответ получим 0x2
а дальше что ?
п.с. ненадо меня посылать на пв лаб
и да я знаю что чубарый)
А дальше из пакете 0x02 извлекаем данные, генерируем ключ, шифруем клиентский трафик :)
Kitsune
19.04.2012, 10:54
S> 0x01
C> 0x03
S> 0x02 или 0x05 или (не помню опкод пакета бана)
C> 0x02 (этот пакет и все последующие идут зашифрованными)
S> 0x04 (этот пакет и все последующие идут сжатыми и зашифрованными)
C> 0x52
S> 0x53
... продолжаем запрос персонажей, пока они есть
А вообще, берете и снифаете нужный вам кусок и разбираете последовательность обмена пакетами.
Morkanus
21.06.2013, 23:45
а есть пример формирования пакета 0х03 на Delphi, на C# нашел но я там не разобрался
FreePVP)))
22.06.2013, 17:25
а есть пример формирования пакета 0х03 на Delphi, на C# нашел но я там не разобрался
Не разобрались - значит рано еще, попробуйте вернуться к ООГ позже
Morkanus
22.06.2013, 18:33
Не разобрались - значит рано еще, попробуйте вернуться к ООГ позже
ну я просто в С# не очень, ну так ладно буду разбираться=)
Добавлено через 2 часа 39 минут
Hash = HMAC_MD5(MD5(Login+Password),Key1); //Ключ из пакета SM_SERVERINFO
не подскажите как реализовать на Delphi. или хотя бы какие библиотеки подключить.
И ещё вопрос Login+Password это типо если Хэш логина= 063A82F190580EA90D482DE92E8369FF
Хэш пароля = F190CE9AC8445D249747CAB7BE43F7D5
то Login+Password имеется ввиду = 063A82F190580EA90D482DE92E8369FFF190CE9AC8445D2497 47CAB7BE43F7D5
для уточнения=)
FreePVP)))
22.06.2013, 21:35
ну я просто в С# не очень, ну так ладно буду разбираться=)
Добавлено через 2 часа 39 минут
Hash = HMAC_MD5(MD5(Login+Password),Key1); //Ключ из пакета SM_SERVERINFO
не подскажите как реализовать на Delphi. или хотя бы какие библиотеки подключить.
И ещё вопрос Login+Password это типо если Хэш логина= 063A82F190580EA90D482DE92E8369FF
Хэш пароля = F190CE9AC8445D249747CAB7BE43F7D5
то Login+Password имеется ввиду = 063A82F190580EA90D482DE92E8369FFF190CE9AC8445D2497 47CAB7BE43F7D5
для уточнения=)
Структура пакета C03 описана в:
Моем брутфорсе
Теме про авторизацию в пв
Статье про протокол игры
В декларации пандоры
В разделе "общение разработчиков"(надо поискать)
Гугле
Генерация хеша и ключей тоже описывалась множество раз
Hash = HMAC_MD5(MD5(Login+Password),Key1);
Интересный факт: скобки указывают последовательность выполняемых операций
semoder
24.06.2013, 05:44
а есть пример формирования пакета 0х03 на Delphi, на C# нашел но я там не разобрался
b := Bytes.Create;
b.WriteAnsiString(Login);
b.WriteByte(16);
b.WriteBytes(hash);
b.WriteByte(0);
b.WriteByte(4);
for i:=0 to 3 do
b.WriteByte($FF);
Send($03, b.Packet);
b.Free;
Может можно сделать и проще, но это мой вариант)
VeTaL_UA
24.06.2013, 13:54
Подключай библиотеку synacode
Библиотека называется synaps ;) synacode - это её модуль :)