Какую инфу содержит пакет 02 AE ?
Модератор: 4epT
Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Какую инфу содержит пакет 02 AE ?
сабж
Еше подскажи пожалуста заголовок пакета и адреса ключей paramOne paramTwo для криптования.
ЗЫ bigendian и littleendian путаю не я а WPEpro, я всего лишь привел логи, и в размере пакета я не ошибся.
Еше подскажи пожалуста заголовок пакета и адреса ключей paramOne paramTwo для криптования.
ЗЫ bigendian и littleendian путаю не я а WPEpro, я всего лишь привел логи, и в размере пакета я не ошибся.
-
- Бывалый
- Сообщения: 624
- Зарегистрирован: Вс мар 25, 2007 9:18 pm
- Сервер RO:: localhost
- Откуда: Санкт-Петербург
Что пакеты склеиваются, это нормально(по идее сервер так и посылает несколько пакетов как один). Особенно большая пачка пакетов приходит при коннекте к мап-серверу).xVoRoNx писал(а):да спасибо. у меня что то наверно с wpe, пока идет прогруз он успевает все пришедшие пакеты склеить в один.
Так что бери длины пакетов из recvpackets.txt и дели эту пачку вручную.
С длиной пакетов разобрался по заголовкам легко найти длину,
другая проблема:
Лог WPEpro
AE 02 64 14 7A E3 CD 8F 26 0F
AE 02 это видимо заголовок пакета 02AE Initialize Message ID Encryption, синий и красный видимо ключи (DWORD)
Немного изменил код отсюда Message ID Encryption
сделал такую программу:[/url]
В том же логе нашел пакет на движение Move
FA 55 29 88 A0
Подставил в программу значение FA55 заголовок этого пакета.
Должен был получится заголовок пакета Move 0085, но расшифрованное значение вообще неподходит не под один пакет...
Менял местами ключи, менял местами байты в заголовке(т.к. WPE путает littleendian bigendian), все перепробовал, но правильное значение не получается...
Вопрос: это рабочий декриптор раггейма? Где я ошибся?
другая проблема:
Лог WPEpro
AE 02 64 14 7A E3 CD 8F 26 0F
AE 02 это видимо заголовок пакета 02AE Initialize Message ID Encryption, синий и красный видимо ключи (DWORD)
Немного изменил код отсюда Message ID Encryption
сделал такую программу:
Код: Выделить всё
TForm1 *Form1;
DWORD encOne;
DWORD encTwo;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
DWORD paramOne=0x64147AE3;
DWORD paramTwo=0xCD8F260F;
char c[8];
DWORD dwTemp=paramOne;
for (int i=7; i >= 0; i--) {
c[i] = dwTemp & 0x0F;
dwTemp >>= 4;
}
WORD w = (c[5]<<12) + (c[3]<<8) + (c[6]<<4) + c[0];
DWORD encValOne = (c[1]<<12) + (c[2]<<8) + (c[4]<<4) + c[7];
DWORD encValTwo = ((((encValOne ^ 0x0000F3AC) + w) << 16) | ((encValOne ^ 0x000049DF) + w)) ^ paramTwo;
encOne=encValOne;
encTwo=encValTwo;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int iEnc=(0x000343FD * encOne) + encTwo;
DWORD tempEncOne=iEnc % 4294967296;
WORD dwRet=(tempEncOne >> 16) & 0x7FFF;
encOne=tempEncOne;
WORD messageID = 0xFA55 ^ dwRet;
Edit1->Text = messageID;
}
В том же логе нашел пакет на движение Move
FA 55 29 88 A0
Подставил в программу значение FA55 заголовок этого пакета.
Должен был получится заголовок пакета Move 0085, но расшифрованное значение вообще неподходит не под один пакет...
Менял местами ключи, менял местами байты в заголовке(т.к. WPE путает littleendian bigendian), все перепробовал, но правильное значение не получается...
Вопрос: это рабочий декриптор раггейма? Где я ошибся?
[quote="xVoRoNx"][/quote]
часть просто переворачивает биты.
Смотри поетапно, как оно пашет.
Я не понял, зачем тебе деление по модулю??? оно только для перла, чтобы не вызвать переполнения переменной.
И тем более, инт там зачем???
И обрати внимание, что для дальнейшего декодинга, тебе потребуется структура, из дух переменных.
Первая из нх, ето encOne, вторая encTwo. Или наоборот, уже нопомню.
ЗЫ: Я тебе уже говорил о переполнении числового значения.
Так, вот. Изначально там был не DWORD а один unsigned int64, с которым изрядно перестарались.
Код: Выделить всё
for (int i=7; i >= 0; i--) {
c[i] = dwTemp & 0x0F;
dwTemp >>= 4;
}
WORD w = (c[5]<<12) + (c[3]<<8) + (c[6]<<4) + c[0];
Смотри поетапно, как оно пашет.
Код: Выделить всё
int iEnc=(0x000343FD * encOne) + encTwo;
DWORD tempEncOne=iEnc % 4294967296;
И тем более, инт там зачем???
И обрати внимание, что для дальнейшего декодинга, тебе потребуется структура, из дух переменных.
Первая из нх, ето encOne, вторая encTwo. Или наоборот, уже нопомню.
ЗЫ: Я тебе уже говорил о переполнении числового значения.
Так, вот. Изначально там был не DWORD а один unsigned int64, с которым изрядно перестарались.
kLabMouse очень порадовало что ты обратил внимание я думал ты на меня обиделся
Я НЕ ПОНИМАЮ ЭТОТ АЛГОРИТМ!!! Я не знаю как преобразуются ключи, как ключиами кодируется заголовок итд... Если кто то ошибся в этом коде, то как я могу его исправить не зная алгоритма???
В коде на си я разобрался я понимаю как он работает, но незная алгоритма исправить немогу.... Я же не криптолог, чтобы часами разглядывая логи выделить закономерность и сделать дешифратор. Если не трудно поправь код на си...
Зачем мне деление по модулю? зачем инт? Это ведь не мой код... я взял его с сайта опенкора см ссылка выше, только чуть переделал для удобного запуска. Кстати этот код на си я перевел на свой язык работает также, проверил.int iEnc=(0x000343FD * encOne) + encTwo;
DWORD tempEncOne=iEnc % 4294967296;
Да я помню что ты говорил, если бы я знал что, где, какая переменная переполняется...Я тебе уже говорил о переполнении числового значения.
Я НЕ ПОНИМАЮ ЭТОТ АЛГОРИТМ!!! Я не знаю как преобразуются ключи, как ключиами кодируется заголовок итд... Если кто то ошибся в этом коде, то как я могу его исправить не зная алгоритма???
В коде на си я разобрался я понимаю как он работает, но незная алгоритма исправить немогу.... Я же не криптолог, чтобы часами разглядывая логи выделить закономерность и сделать дешифратор. Если не трудно поправь код на си...