Изучение протокола игры - Zhyk.Ru Forums
Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

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

-

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

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

Ответ
 
Опции темы Опции просмотра
Старый 29.09.2012, 22:33   #1
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 345 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Изучение протокола игры

Доброго времени суток.
Из названия темы понятно, что речь пойдет о разработке OOG бота
1. Настройка сниффера
Прежде чем начать изучать трафик, надо видеть его структуру
Для этого будем использовать сниффер, перехватчик пакетов
Сниффер - Pandora's Box(сниффер на основе прокси-сервера)
Прокси-клиент - Любой, но я использую Proxifier
Скачать Pandora's Box | [Ссылки могут видеть только зарегистрированные пользователи. ]
Гайд по настройке Proxifier
2. Структура пакета
Все пакеты отправляются в формате:
Код:
CUInt32         Type;
CUInt32         Length;
BYTE[Length]    Buffer;
Type - тип пакета(например: 0x01, 0x03)
Length - длина буфера с данными
Buffer - данные(например логин и хеш логина с паролем)
Пример CUInt32
3. "Упаковка, шифрация, создание ключей" или "Входим на аккаунт"
Как известно, все серверные пакеты после 0x02 S2C(Server to Client) шифруются и пакуются, а клиентские пакеты только шифруются
Для шифрации используется алгоритм [Ссылки могут видеть только зарегистрированные пользователи. ]
Для упаковки - [Ссылки могут видеть только зарегистрированные пользователи. ]
RC4 C#
MPPC C#
Теперь по порядку
Код:
S2C <- 0x01 ServerInfo
C2S -> 0x03 LogginAnnounce
S2C <- 0x02 SMKey
C2S -> 0x02 CMKey
0x01 ServerInfo
0x03 LogginAnnounce
0x02 SMKey
0x02 CMKey

Задавайте вопросы, пишите замечания

Скачать Pandora's Box | [Ссылки могут видеть только зарегистрированные пользователи. ]
Скачать PacketDeclaration.xml
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
17 пользователя(ей) сказали cпасибо:
388672 (18.11.2012), AloneDance (30.09.2012), DevZI (05.01.2014), Ginrey (06.09.2015), Goooooogle (29.09.2012), KASTEIL (27.05.2015), krukovis (30.09.2012), krysun (15.02.2013), MembRupt (17.07.2014), Nek1t (29.09.2012), RemoteAccess (12.10.2012), reshacker (01.03.2016), Smertig (22.07.2013), ToRcH2565 (30.05.2013), TranceR (10.07.2013), vladoscom93 (30.09.2012), _DVD_ (27.03.2014)
Старый 02.10.2012, 12:05   #2
 Разведчик
Аватар для 7_ON
 
7_ON никому не известный тип
Регистрация: 11.09.2011
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры


Цитата:
Сообщение от FreePVP)))Посмотреть сообщение
Options -> Proxy SettingsAdd
Address = 127.0.0.1
Port = 30000 (по умолчанию используется в пандоре)
Protocol = SOCKS Version 4
Ok
Отмечаем галочкой созданную настройку

ggg.JPG
  Ответить с цитированием
Старый 02.10.2012, 15:21   #3
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 323 раз(а) в 103 сообщениях
 
По умолчанию Re: Изучение протокола игры

7_ON, это вопрос или дополнение или... ?
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 02.10.2012, 21:11   #4
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 345 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

7_ON, не трогайте настройки пандоры, если не знаете, что они значат
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Пользователь сказал cпасибо:
MembRupt (17.07.2014)
Старый 03.10.2012, 17:36   #5
 Разведчик
Аватар для 7_ON
 
7_ON никому не известный тип
Регистрация: 11.09.2011
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

Может я чего то не понимаю... Скачал архив с Pandora's Box, открываю гайд по ее настройке и собственно вопрос: где те кнопки и пункты меню? Или эта не та версия или ... Можно поподробнее описать настройку Pandora's Box
  Ответить с цитированием
Старый 03.10.2012, 19:01   #6
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 345 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

7_ON,
[Ссылки могут видеть только зарегистрированные пользователи. ]
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 05.10.2012, 14:23   #7
Заблокирован
 Разведчик
Аватар для gudvin7771
 
gudvin7771 никому не известный тип
Регистрация: 27.08.2011
Сообщений: 2
Популярность: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

Поясните, что надо отправлять в пакете C02? Я его формирую так: беру EncHash из S02, HMACMD5 хеш из C03, логин. На их основе делаю RC4 ключ = HMACMD5(хеш из С03 + EncHash).ComputeHash(Login). Затем пишу в пакет опкод 0х02, длину пакета, длину ключа, полученный RC4 ключ и 0х00. Отправляю и сервер молчит. Слышал, что нужно уже сам пакет C02 зашифровать, так вот, его шифровать с помощью RC4? И на основе какого ключа тогда? И что именно шифровать - чисто пакет, или все полностью вместе с опкодом/длиной пакета и т.д.
  Ответить с цитированием
Старый 05.10.2012, 16:54   #8
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 345 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

gudvin7771, [Ссылки могут видеть только зарегистрированные пользователи. ]
В будущем юзайте поиск
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 05.10.2012, 23:45   #9
Заблокирован
 Разведчик
Аватар для gudvin7771
 
gudvin7771 никому не известный тип
Регистрация: 27.08.2011
Сообщений: 2
Популярность: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Изучение протокола игры

И все же, нагуглился как следует, пвлаб изучил все что можно было, везде только "угадай сам". Ну скажите, что я делаю не так при формировании C0x02:

Код:
class Packet_C02
    {
        public static byte[] Create(byte[] S01, byte[] S02, string log, string pass)
        {
            byte[] bLogin = Encoding.ASCII.GetBytes(log);
            byte[] bPass = Encoding.ASCII.GetBytes(pass);
            byte[] EncHash = Bytes.ReadBytes(S02, 3, 16);
            byte[] key_from_S01 = Bytes.ReadBytes(S01, 3, 16);
            byte[] bLogPass = Bytes.ConcatBytes(bLogin, bPass); // функция аналог встроенной конкатинации, 100% рабочая.
            MD5 md5 = MD5.Create();
            byte[] hashHMAC = new HMACMD5(md5.ComputeHash(bLogPass)).ComputeHash(key_from_S01);
            md5.Clear();
            byte[] RC4_key = new HMACMD5(Bytes.ConcatBytes(hashHMAC, EncHash)).ComputeHash(bLogin);
            RC4 encoder = new RC4(EncHash); // RC4 алгоритм 100% рабочий.
            byte[] itog = encoder.Encode(RC4_key);
            List<byte> result = new List<byte>();
            result.AddRange(new byte[] { 0x02, (byte)(2 + itog.Length), (byte)(itog.Length) });
            result.AddRange(itog);
            byte[] buf = new byte[1];
            buf[0] = 0x00;
            result.AddRange(buf);
            return result.ToArray();
        }

Последний раз редактировалось gudvin7771; 06.10.2012 в 17:13.
  Ответить с цитированием
Старый 06.10.2012, 00:13   #10
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 345 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

Вот мой старый класс для генерации ключей
Код:
using System.Text;
using System.Security.Cryptography;

namespace OOGLibrary.Cryptography
{
    class MD5Hash
    {
        byte[] Hash = new byte[16];
        byte[] Login = new byte[16];
        public byte[] GetHash(string login, string password, byte[] key)
        {
            byte[] loginBytes = Encoding.ASCII.GetBytes(login);
            byte[] pwdBytes = Encoding.ASCII.GetBytes(password);
            Login = loginBytes;
            MD5 md = MD5.Create();
            byte[] loginWithPasswordBytes = new byte[loginBytes.Length + pwdBytes.Length];
            for (int i = 0; i < loginBytes.Length; i++) 
                loginWithPasswordBytes[i] = loginBytes[i];
            for (int i = 0; i < pwdBytes.Length; i++) 
                loginWithPasswordBytes[i + loginBytes.Length] = pwdBytes[i];
            byte[] hash = new HMACMD5(md.ComputeHash(loginWithPasswordBytes)).ComputeHash(key);
            Hash = hash;
            return hash;
        }
        public byte[] GetKey(byte[] key)
        {
            byte[] nhash = new byte[key.Length + Hash.Length];
            for (int i = 0; i < Hash.Length; i++) nhash[i] = Hash[i];
            for (int i = 0; i < key.Length; i++) nhash[i + Hash.Length] = key[i];

            byte[] hash = new HMACMD5(Login).ComputeHash(nhash);
            return hash;
        }
    }
}
С02
Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace OOGLibrary.IO.PacketBase.Client
{
    public class CMKeyC02 : DataStream, IClientPacket
    {
        internal byte[] ServerKey { get; private set; }
        internal byte[] ClientKey { get; private set; }
        public bool Force { get; private set; }
        public CMKeyC02(Server.SMKeyS02 key, bool force)
        {
            ServerKey = key.Key;
            ClientKey = new byte[16]; new Random().NextBytes(ClientKey);
            Force = force;
        }
        public DataStream Serialize()
        {
            Type = 0x02;
            WriteData(ClientKey);
            Write(Force);
            return this;
        }
    }
}
Создание классов RC4
Код:
                CMKeyC02 key = (CMKeyC02)ds;
                Crypt.CreateEnc(md5.GetKey(key.ServerKey));
                Crypt.CreateDec(md5.GetKey(key.ClientKey));
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 10.10.2012, 01:19   #11
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

Цитата:
Сообщение от FreePVP)))Посмотреть сообщение
Вот мой старый класс для генерации ключей

После обновления поменялась схема авторизации, старый алгоритм больше не работает....
  Ответить с цитированием
Старый 10.10.2012, 07:28   #12
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 345 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

Sinyss, что там за обновление такое
Добавились всего 5 байт, а алгоритмы те же
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 10.10.2012, 07:47   #13
 Пехотинец
Аватар для Nek1t
 
Nek1t на правильном путиNek1t на правильном пути
Регистрация: 31.08.2010
Сообщений: 64
Популярность: 129
Сказал(а) спасибо: 30
Поблагодарили 12 раз(а) в 7 сообщениях
 
По умолчанию Re: Изучение протокола игры

FreePVP))), можно узнать, что за класс у вас такой DataStream? Это аналог вортовского CPWPacketStream или же что-то другое?
________________
Спасибо.
  Ответить с цитированием
Старый 10.10.2012, 15:39   #14
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 345 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Изучение протокола игры

Nek1t, CPWPacket, не?
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 12.10.2012, 15:11   #15
 Пехотинец
Аватар для 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.
  Ответить с цитированием
Ответ

Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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

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

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

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