Sinyss, что там за обновление такое
Добавились всего 5 байт, а алгоритмы те же
кто нить разобрался что за 5 байт?
У меня всегда 00 ff ff ff ff
--------------------------
Еще вопрос:
Подскажите пожалуйста
Вот я получаю ключ в пакете SM 0x02
Далее я должен послать серверу CM 0x02 в зашифрованом RC4 виде.
Подойдет любая реализация RC4?
Кто нибудь подскажет в чем может быть дело?
Сервер на мой пакет 0x02(cm_key) отвечает 0x04(cm_loginsuccess), т.е. с ним все нормально. Пакет 0x04 расшифровываю серверным ключиком, распаковываю, данные со снифером (Pandora Box) сходятся. Т.е. формат получаю такой:
Opcode Byte //Опкод 0x04
PacketLen Byte //Длина пакета в байтах
AccountKey dword (4 bytes) //Идентификатор аккаунта
Далее неизвестные данные
Выдергиваю этот AccountKey, формирую 0x52, шифрую его RC4 тем же ключом, что и шифровал пакет для отправки 0x02(cm_key), но вот сервер на него не отвечает(
Код:
RC4 enc = new RC4(Connection.ClientKey);
List<byte> result = enc.Encode(send, send.Count);
Вот в чем вопрос, для шифрования клиентских пакетов после 0x02(cm_key) используется тот же ключ, что и для 0x02 (cm_key) или тут что то другое?
Разобрался, Спасибо FreePVP)))
Последний раз редактировалось 7_ON; 28.10.2012 в 15:40.
Причина: Исправление
Вопрос по распаковке и расшифровке: сначала расшифровка, потом распаковка? Распаковывать нужно только само тело пакета, не трогая 1 и 2 байты? И запаковывать также только тело, а зашифровывать все целиком? И почему при использовании алгоритма MPPC вылетает исключение выхода за границы массива? Даже начинает казаться, что оба варианта MPPC в паблике которые, имеют намеренные ошибки, чтобы ничего не работало специально. И я бы сам написал MPPC по стандарту RFC, но ведь в пв "немного измененная" версия, и ведь хрен поймешь, где и насколько сильно он изменен.
Последний раз редактировалось CSharp; 22.04.2013 в 19:32.
Так, ладно, с MPPC разобрался, спасибо. Один вопросик - что за байты после основного пакета? Например у того же 0х4 в конце FF FF FF FF 00 00 00 00 00 00 00 00 и еще 2-5 байтов рандомных, хотя в пандоре этот рандомный конец не отображается. Это мусор?
Добавлено через 53 минуты
Цитата:
Сообщение от N00bSa1b0t
Единственно что - MPPC в этой теме имеет утечку памяти, но это не так критично)
Откуда утечка? В данном коде MPPC же нет неуправляемого кода, сборщик мусора сам все чистит, это же C#.
Последний раз редактировалось CSharp; 22.04.2013 в 22:53.
Причина: Добавлено сообщение
Откуда утечка? В данном коде MPPC же нет неуправляемого кода, сборщик мусора сам все чистит, это же C#.
Если посмотреть код MPPC, то видно что в список m_Unpacked идет добавление байт, однако никогда нет удаления. Соответственно, чем больше работает программа, тем больше место в памяти он отожрет
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]-cофт и прочее для комфортной игры в PW. PW Everyday Helper Bot
По поводу буфера MPPC. Я обнаружил, что пакеты должны распаковываться в строгой последовательности друг за другом по мере поступления, ибо учитывается значение буфера. Он имеет размер 8192 байта. Но ведь весь трафик игры не 8 кб, тогда в каких случая буфер нужно сбрасывать?
Последний раз редактировалось CSharp; 24.04.2013 в 17:59.
Подскажите структуру пакета 0x52. А то сервер мне в ответ молчит.
Вот этот вариант правильный?
[ 1] 52 // тип
[ 1] 00 // размер
[ 4] xx xx xx xx // Account ID
[ 4] 00 00 00 00 // Хз что, но обычно нули
[ 4] 00 00 00 01 // Номер слота (начиная с нуля)
[ 1] 52 // тип
[ 1] 00 // размер
[ 4] xx xx xx xx // Account ID
[ 4] 00 00 00 00 // Хз что, но обычно нули
[ 4] 00 00 00 01 // Номер слота (начиная с нуля)
Тип 52, размер 0С, дальше айди акка 4 байта и 8 нулей. В последующих пакетах меняется только номер слота (последняя цифра пакета)
Цитата:
520CXXXXXXXX00000000
P.S. Когда я запоролся на этом пакете, оказалось, что неправильная реализация RC4 была, которая не учитывала предыдущие расшифровки. Грубо говоря:
Цитата:
X = RC4_Encode(123456)
Y = RC4_Encode(123456)
X не должен быть равен Y! (при последовательной расшифровке)
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
Последний раз редактировалось Smertig; 22.06.2014 в 15:12.