0

我正在使用 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 上,当我尝试运行挂钩的应用程序时没有任何反应。

4

0 回答 0