Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Опкоды пакетов при хуке
#1
Здравствуйте форумчане, после разбора клиент части и хуков функций, появилось желание добавить свои пакеты как server<>client так и на оборот. Что бы не задень игровые опкоды я решил использовать опкод 0xFE, но при отсылке этого опкода серверу, сервер его принимает как 0xFF, так же пробовал опкоды 0xF0-0xFE.
Объяснит может кто как с этим бороться?

Пример отсылки пакета:
Код:
MySendPacket(_this, "cc", 0xFE, 0x01);
Ответ
#2
UP! (проблема актуальна).
Ответ
#3
вы бы назвали клиент какой игры, версия.

содержимое функции MySendPacket

как вы там дергаете API send из ws2_32.dll
Ответ
#4
ой сори, клиент Lineage2: Lindvior
Код:
void OLDAPI MySendPacket(unsigned int _this, char *format, ...)
        {
            unsigned char buf[10240];
            unsigned int size = 0;
            int len;
            wchar_t *wstr;

            va_list args;
            va_start(args, format);

            while (*format != 0)
            {
                switch (*format)
                {
                case 'c':
                    *(unsigned char*) (buf + size) = va_arg(args, unsigned char);
                    size++;
                    break;
                case 'h':
                    *(unsigned short int*) (buf + size) = va_arg(args, unsigned short int);
                    size += 2;
                    break;
                case 'f':
                    *(float*) (buf + size) = va_arg(args, float);
                    size += 4;
                    break;
                case 'd':
                    *(unsigned int*) (buf + size) = va_arg(args, unsigned int);
                    size += 4;
                    break;
                case 'Q':
                    *(unsigned __int64*) (buf + size) = va_arg(args, unsigned __int64);
                    size += 8;
                    break;
                case 'b':
                    len = va_arg(args, unsigned int);
                    memcpy(buf + size, va_arg(args, void*), len);
                    size += len;
                    break;
                case 'S':
                    wstr = va_arg(args, wchar_t*);
                    if (wstr == 0)
                    {
                        len = 2;
                        *(unsigned short int*) (buf + size) = 0;
                    }
                    else
                    {
                        len = wcslen(wstr) * 2 + 2;
                        memcpy(buf + size, wstr, len);
                    }
                    size += len;
                    break;
                }
                format++;
            }

            va_end(args);

            Defaults::SendPacketFunc(_this, "b", size, (int) buf);
        }

метод send из ws2_32 не трогаю, перехватываю только SendPacket.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Свой сниффер и редактор пакетов SiriusED 0 379 03-22-2024, 03:28 AM
Последний пост: SiriusED
  C++ перехват пакетов Zubastic 152 35,925 08-30-2016, 10:13 AM
Последний пост: flopix
  Реконструкция пакетов из WSARecv\WSASend ANZO 3 2,433 04-17-2016, 08:34 PM
Последний пост: Necroz-Team
  Подмен пакетов katanasmil 4 3,027 06-16-2014, 07:24 PM
Последний пост: PROGRAMMATOR

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)