// wininetdetour.cpp // // by PortSwigger // http://portswigger.net #include #include #include "detours.h" #pragma comment(lib, "wininet.lib") DETOUR_TRAMPOLINE( DWORD WINAPI origInternetOpenA(char* lpszAgent, DWORD dwAccessType, char* lpszProxyName, char* lpszProxyBypass, DWORD dwFlags), InternetOpenA ); DWORD WINAPI myInternetOpenA(char* lpszAgent, DWORD dwAccessType, char* lpszProxyName, char* lpszProxyBypass, DWORD dwFlags) { // lpszAgent = "MyUserAgent"; // set lpszAgent to override the default User-Agent string dwAccessType |= INTERNET_OPEN_TYPE_PROXY; lpszProxyName = "127.0.0.1:8080"; // lpszProxyBypass = "*.google.com"; // set lpszProxyBypass to define domains which won't use the proxy return origInternetOpenA(lpszAgent, dwAccessType, lpszProxyName, lpszProxyBypass, dwFlags); } BOOL WINAPI DllMain(HINSTANCE hinst, DWORD dwReason, LPVOID reserved) { DetourFunctionWithTrampoline((PBYTE) origInternetOpenA, (PBYTE) myInternetOpenA); return true; }