Имитация отправки и получения пакетов

Я подключил функции send и recv для игрового процесса. Теперь я могу справиться с тем, что отправлено, а что получено.

Мои функции:

int __stdcall nSend(SOCKET s, char *buf, int len,int flags)
{
UnHookFunction("ws2_32.dll", "send", KSendHook);
int result = send(s, buf, len, flags); // Send data
HookFunction("ws2_32.dll", "send", (LPVOID*) nSend, KSendHook);

return result;
}

int __stdcall nRecv(SOCKET s, char *buf, int len, int flags)
{
UnHookFunction("ws2_32.dll", "recv", KRecvHook);
int result = recv(s, buf, len, flags); // Receive data
HookFunction("ws2_32.dll", "recv", (LPVOID*) nRecv, KRecvHook);

return result;
}

Мой вопрос:

Я подключил функцию, чтобы я мог только интерпретировать и изменять то, что отправлено и получено.
Мне нужно отправлять новые структуры пакетов, как если бы я был в игре. Используя тот же сокет.

Как я могу симулировать send и recv для одного и того же сокета подключенных функций?

1

Решение

Когда вызванная вами функция приема вызывается, вызывайте реальные функции отправки и получения по мере необходимости. Если у вас есть данные для возврата вызывающей стороне, верните их вызывающей стороне. Когда вызывается send, возьмите отправленные данные, решите, хотите ли вы отправлять что-либо на сервер или нет, и позвоните send и receive, чтобы общаться с сервером так, как вам нравится.

0

Другие решения


По вопросам рекламы [email protected]