//Структура которую принимает AddNetworkQueue
#pragma pack(push, 1)
struct NetworkPacket
{
unsigned char id, _padding1, exid, _padding2;
unsigned short size, _padding3;
unsigned char* data;
};
#pragma pack(pop)
//Прототип функции AddNetworkQueue
typedef void (__fastcall *UNetworkHandler_AddNetworkQueue)(void*, int, struct NetworkPacket*);
UNetworkHandler_AddNetworkQueue UNetworkHandler;
//Примерно так выглядит функция АддНетворк
void __fastcall UNetworkHandler_AddNetworkQueue_hook(void* This, int i, NetworkPacket* packet)
{
printf("%02X ", packet->id);
//Как вернуть управления придумай сам соответственно твоему велосипеду хука
}
void Hook()
{
HMODULE hEngine = GetModuleHandleA("Engine.dll");
//UNetworkHandler - адресс AddNetworkQueue
UNetworkHandler = reinterpret_cast<UNetworkHandler_UNetworkHandler>(GetProcAddress(hEngine, "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPacket@@@Z"));
//Дальше ставишь хук на свою функцию
}