Я хочу написать .dll. My Targetapplication - это игра и использование winsock. DLL должен написать все вещи в консоли, что игра (Targetapplication) возвращается через функцию recv в winsock. Я создал консольное приложение C++ Win32 в Visual Studio 2012 Professional, choosed .dll и Empty project.C++ Winsock recv hook Detours
Мой код в main.cpp
#include <Windows.h>
#include <detours.h>
#include <winsock2.h>
#include <iostream>
using namespace std;
#pragma comment (lib, "detours")
typedef int (WINAPI *MyRecv) (SOCKET, char, int, int);
MyRecv OrigRecv = NULL;
int WINAPI RecvDetour(SOCKET s, char *buf, int len, int flags)
{
cout << *buf << " - " << len << endl;
return OrigRecv(s, *buf, len, flags);
}
BOOL APIENTRY DllMain(HINSTANCE module, DWORD Reason, LPVOID reserved)
{
switch (Reason)
{
case DLL_PROCESS_ATTACH:
cout << "Starting.." << endl;
OrigRecv = (MyRecv)DetourFunction((PBYTE)recv, (PBYTE)RecvDetour);
break;
case DLL_PROCESS_DETACH:
break;
}
}
Я не в состоянии собрать это. Есть некоторые ошибки. Кто-нибудь видит ошибку в этом коде?
Большое спасибо :)
сообщения Сообщение об ошибке дословно в ваш вопрос, пожалуйста. –
Его немецкий, но, возможно, он помогает http://pastebin.com/KnSahAeZ – prophet
Возможный дубликат http://stackoverflow.com/questions/19062091/detour-hook-send-recv-winsock –