Windows DLL向后兼容性

时间:2013-03-14 06:28:22

标签: c++ windows dll backwards-compatibility detours

我正在使用MS detours 3.0 Express创建一个绕过应用程序功能的DLL 我使用StudPE进入dll API并将其挂钩到应用程序 一切正常,除了它不适用于Windows XP

Windows 7工作正常。而且我已经没想到为什么它不适用于Windows XP。

我使用Microsoft Visual Studio 2012在Windows 7 x64计算机上编译它。

我正在调用DllMain我的代码是:(只是相关代码 - 不完整)

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;
}

在WinXP上,当我尝试运行挂钩的应用程序时没有任何反应。

0 个答案:

没有答案