게임 프로세스의 send 및 recv 함수를 연결했습니다. 이제는 보낸 내용과받은 내용을 처리 할 수 있습니다.시뮬레이션 패킷 전송 및 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를 시뮬레이트 할 수 있습니까?
핸들을 사용하여 send()를 다시 호출하기 위해 s을 사용하려고했습니다. 그러나 didnt는 일한다. –
어떤 방법으로 작동하지 않습니까? – wakjah
프로세스가 충돌합니다. 나는 전화를 걸 때와 같은 방식으로 전화를 걸었다. 'send (s, buf, len, flags); 나는 훅 된 send로부터 전역 변수에 s와 flags를 저장하고, 같은 플래그와 s를 사용하여 보내려고했다. 그러나 프로세스가 충돌합니다. –