Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

Изучение протокола игры

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы Опции просмотра
Старый 12.10.2012, 15:11   #16
 Пехотинец
Аватар для Jok3r666
 
Jok3r666 скоро будет известенJok3r666 скоро будет известенJok3r666 скоро будет известен
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
 
По умолчанию Re: Изучение протокола игры

Цитата:
Сообщение от FreePVP)))Посмотреть сообщение
Sinyss, что там за обновление такое
Добавились всего 5 байт, а алгоритмы те же

кто нить разобрался что за 5 байт?
У меня всегда 00 ff ff ff ff

--------------------------

Еще вопрос:
Подскажите пожалуйста
Вот я получаю ключ в пакете SM 0x02
Далее я должен послать серверу CM 0x02 в зашифрованом RC4 виде.
Подойдет любая реализация RC4?

Последний раз редактировалось Jok3r666; 18.10.2012 в 11:15.
  Ответить с цитированием
Старый 20.10.2012, 12:14   #17
 Пехотинец
Аватар для Jok3r666
 
Jok3r666 скоро будет известенJok3r666 скоро будет известенJok3r666 скоро будет известен
Регистрация: 17.05.2010
Сообщений: 53
Популярность: 204
Сказал(а) спасибо: 11
Поблагодарили 15 раз(а) в 6 сообщениях
 
По умолчанию Re: Изучение протокола игры

Разобрался.
  Ответить с цитированием
Старый 27.10.2012, 13:54   #18
 Разведчик
Аватар для 7_ON
 
7_ON никому не известный тип
Регистрация: 11.09.2011
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

Кто нибудь подскажет в чем может быть дело?
Сервер на мой пакет 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. Причина: Исправление
  Ответить с цитированием
Старый 11.12.2012, 21:26   #19
 Разведчик
Аватар для AHTOLLlKA
 
AHTOLLlKA никому не известный тип
Регистрация: 08.10.2012
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

поделитесь MPPC на делфях ^^
  Ответить с цитированием
Старый 12.12.2012, 22:38   #20
 Разведчик
Аватар для vogel
 
vogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личность
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
 
По умолчанию Re: Изучение протокола игры

Сам напиши
  Ответить с цитированием
Старый 04.03.2013, 12:57   #21
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: Изучение протокола игры

Цитата:
Сообщение от 7_ONПосмотреть сообщение
Вот в чем вопрос, для шифрования клиентских пакетов после 0x02(cm_key) используется тот же ключ, что и для 0x02 (cm_key) или тут что то другое?

Разобрался, Спасибо FreePVP)))

мне вот тоже не понятно, CMKey и SMKey содежат ключи, для шифрования, они задаются только один раз при логине? и еще вопрос про
Цитата:
DecHash - Рандомный хеш, с помощью которого, как я уже описывал чуть выше, генерируется ключ для RC4, которым клиент будет расшифровывать трафик

совсем рандомный хоть все нули?
  Ответить с цитированием
Старый 17.04.2013, 18:16   #22
 Пехотинец
Аватар для tianddu
 
tianddu на правильном путиtianddu на правильном пути
Регистрация: 20.08.2009
Сообщений: 90
Популярность: 173
Сказал(а) спасибо: 14
Поблагодарили 26 раз(а) в 8 сообщениях
 
По умолчанию Re: Изучение протокола игры

Код:
List<byte> Send2 = new List<byte>();
                    byte[] EncHash = new byte[0x10];
                    for (int i = 0; i < 0x10; i++)
                        EncHash[i] = buf[i + 3];
                    RC4Key = RC4_key(loginbt, hash, EncHash);
                    byte[] DecHash = new byte[0x10];
                    Random r = new Random();
                    for (int i = 0; i < DecHash.Length; i++)
                        DecHash[i] = Convert.ToByte(r.Next(0, 255));
                    Send2.Add(0x12);
                    Send2.AddRange(DecHash);
                    Send2.Insert(0, (byte)Send2.Count);
                    Send2.Insert(0, 0x02);

                    RC4_Testing.RC4 encoder = new RC4_Testing.RC4(RC4Key);
                    byte[] result = encoder.Encode(Send2.ToArray(), Send2.ToArray().Length);

                    /*RC4_Testing.RC4 decoder = new RC4_Testing.RC4(key);
                    byte[] decryptedBytes = decoder.Decode(result, result.Length);
                    string decryptedString = ASCIIEncoding.ASCII.GetString(decryptedBytes);*/

                    skt.Send(result);
                    continue;
формируется пакет но почему то пандора не показывает что пакет отправлен...
  Ответить с цитированием
Старый 22.04.2013, 19:26   #23
 Разведчик
Аватар для CSharp
 
CSharp никому не известный тип
Регистрация: 10.03.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

Вопрос по распаковке и расшифровке: сначала расшифровка, потом распаковка? Распаковывать нужно только само тело пакета, не трогая 1 и 2 байты? И запаковывать также только тело, а зашифровывать все целиком? И почему при использовании алгоритма MPPC вылетает исключение выхода за границы массива? Даже начинает казаться, что оба варианта MPPC в паблике которые, имеют намеренные ошибки, чтобы ничего не работало специально. И я бы сам написал MPPC по стандарту RFC, но ведь в пв "немного измененная" версия, и ведь хрен поймешь, где и насколько сильно он изменен.

Последний раз редактировалось CSharp; 22.04.2013 в 19:32.
  Ответить с цитированием
Старый 22.04.2013, 21:42   #24
 Старший сержант
Аватар для N00bSa1b0t
 
N00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядом
Регистрация: 09.04.2010
Сообщений: 204
Популярность: 5518
Сказал(а) спасибо: 49
Поблагодарили 512 раз(а) в 198 сообщениях
 
По умолчанию Re: Изучение протокола игры

Цитата:
Сообщение от CSharpПосмотреть сообщение
сначала расшифровка, потом распаковка

Именно.

Цитата:
Сообщение от CSharpПосмотреть сообщение
Распаковывать нужно только само тело пакета, не трогая 1 и 2 байты

Расшифровка и распаковка идет всего трафика полностью.

Цитата:
Сообщение от CSharpПосмотреть сообщение
И запаковывать также только тело, а зашифровывать все целиком

Запаковывать ничего не надо. Трафик от клиента лишь зашифрован. Да, шифруем все целиком.

Цитата:
Сообщение от CSharpПосмотреть сообщение
оба варианта MPPC в паблике которые, имеют намеренные ошибки

Бред. Код в этой теме почти рабочий (за исключением вроде как неверного пакета входа). Реализация MPPC и RC4 рабочие.

Единственно что - MPPC в этой теме имеет утечку памяти, но это не так критично)
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]-cофт и прочее для комфортной игры в PW.
PW Everyday Helper Bot
  Ответить с цитированием
Старый 22.04.2013, 21:59   #25
 Разведчик
Аватар для CSharp
 
CSharp никому не известный тип
Регистрация: 10.03.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

Так, ладно, с 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. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 24.04.2013, 12:05   #26
 Старший сержант
Аватар для N00bSa1b0t
 
N00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядом
Регистрация: 09.04.2010
Сообщений: 204
Популярность: 5518
Сказал(а) спасибо: 49
Поблагодарили 512 раз(а) в 198 сообщениях
 
По умолчанию Re: Изучение протокола игры

Цитата:
Сообщение от CSharpПосмотреть сообщение
основного пакета

А что такое основной пакет?)

Цитата:
Сообщение от CSharpПосмотреть сообщение
Откуда утечка? В данном коде MPPC же нет неуправляемого кода, сборщик мусора сам все чистит, это же C#.

Если посмотреть код MPPC, то видно что в список m_Unpacked идет добавление байт, однако никогда нет удаления. Соответственно, чем больше работает программа, тем больше место в памяти он отожрет
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]-cофт и прочее для комфортной игры в PW.
PW Everyday Helper Bot
  Ответить с цитированием
Старый 24.04.2013, 17:50   #27
 Разведчик
Аватар для CSharp
 
CSharp никому не известный тип
Регистрация: 10.03.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

По поводу буфера MPPC. Я обнаружил, что пакеты должны распаковываться в строгой последовательности друг за другом по мере поступления, ибо учитывается значение буфера. Он имеет размер 8192 байта. Но ведь весь трафик игры не 8 кб, тогда в каких случая буфер нужно сбрасывать?

Последний раз редактировалось CSharp; 24.04.2013 в 17:59.
  Ответить с цитированием
Старый 24.04.2013, 20:17   #28
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,541
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,716 раз(а) в 538 сообщениях
 
По умолчанию Re: Изучение протокола игры

CSharp, буфер 8кб, значит надо оставлять последние 8кб.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
  Ответить с цитированием
Старый 26.07.2013, 01:27   #29
 Разведчик
Аватар для wajskopf
 
wajskopf никому не известный тип
Регистрация: 15.08.2011
Сообщений: 25
Популярность: 10
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

Подскажите структуру пакета 0x52. А то сервер мне в ответ молчит.
Вот этот вариант правильный?
[ 1] 52 // тип
[ 1] 00 // размер
[ 4] xx xx xx xx // Account ID
[ 4] 00 00 00 00 // Хз что, но обычно нули
[ 4] 00 00 00 01 // Номер слота (начиная с нуля)
  Ответить с цитированием
Старый 26.07.2013, 03:29   #30
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

Цитата:
Сообщение от wajskopfПосмотреть сообщение
[ 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.
  Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

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

Быстрый переход

www.webmoney.ru
Заявление об ответственности / Список мошенников

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

Пишите нам: forum@zhyk.ru
Copyright © 2019 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net