0

I am using MS detours 3.0 Express to create a DLL that detours a function of an application.
I have used StudPE to enter the dll API and hook it to the application.
Everything works fine except for it won't work on windows XP.

Windows 7 works fine though. And I'm running out of idea's as to why it just won't work on windows XP.

I compiled it on a Windows 7 x64 machine with Microsoft Visual Studio 2012.

I'm calling the DllMain My code is: (just the relevant code - incomplete)

extern "C" __declspec(dllexport) INT APIENTRY DllMain(HMODULE hDLL, DWORD Reason, LPVOID Reserved)
{
    switch(Reason) {
    case DLL_PROCESS_ATTACH:    //Do standard detouring
        DisableThreadLibraryCalls(hDLL);
        //AllocConsole();
        //
        DetourTransactionBegin();
        DetourUpdateThread(GetCurrentThread());
        DetourAttach(&(PVOID&)pSend, MySend);
        if(DetourTransactionCommit() == NO_ERROR) {
            cout << "[" << MySend << "] successfully detoured." << endl;
        }
        break;

    case DLL_PROCESS_DETACH:
        DetourTransactionBegin();   //Detach
        DetourUpdateThread(GetCurrentThread());
        DetourDetach(&(PVOID&)pSend, MySend);
        DetourTransactionCommit();
        break;
    }
    return TRUE;
}

On WinXP nothing happens when I try to run the hooked application.

Peter Wood
  • 23,859
  • 5
  • 60
  • 99
madziikoy
  • 1,447
  • 7
  • 22
  • 32

0 Answers0