Показать сообщение отдельно
Непрочитано 26.07.2016, 14:01   #14
Пользователь

По умолчанию Re: C++ перехват пакетов

И что такая конструкция прям так компилируется с троеточием в аргументах ?
PHP код:
true_UNetworkHandler_OutgoingPacket(ThisFormat, ...); 
Функция sendPacket идет с переменным числом аргументов и есть нюансы. Попробуйте пока вызвать так:
PHP код:
//Клиентские пакеты
void __cdecl UNetworkHandler_OutgoingPacket_hook(unsigned int Thischar *Format, ...)
{
    
unsigned char buf[10240];
    
int size 0len;
    
wchar_t *wstr;

    
va_list args;
    
va_start(argsFormat);

    while (*
Format != 0)
    {
        switch (*
Format)
        {
            case 
'c':
                *(
unsigned char*) (buf size) = va_arg(argsunsigned char);
                
size++;
                break;
            case 
'h':
                *(
unsigned short int*) (buf size) = va_arg(argsunsigned short int);
                
size += 2;
                break;
            case 
'd':
                *(
unsigned int*) (buf size) = va_arg(argsunsigned int);
                
size += 4;
                break;
            case 
'Q':
                *(
unsigned __int64*) (buf size) = va_arg(argsunsigned __int64);
                
size += 8;
                break;
            case 
'b':
                
len va_arg(argsunsigned int);
                
memcpy(buf sizeva_arg(argsvoid*), len);
                
size += len;
                break;            
            case 
'S':
                
wstr va_arg(argswchar_t*);
                if (
wstr == 0)
                {
                    
len 2;
                    *(
unsigned short int*) (buf size) = 0;
                }
                else
                {
                    
len wcslen(wstr) * 2;
                    
memcpy(buf sizewstrlen);
                }
                
size += len;
                break;
        }
        
Format++;    
    }

    
va_end(args);

    
true_UNetworkHandler_OutgoingPacket(This"b"size, (int)buf);

Тем более для того что вы делаете это как раз понадобится. На выходе у вас готовый буфер с пакетом.
flopix вне форума Ответить с цитированием