ShowWindow Detour



  • Hey C++ Community,

    ich versuche gerade die ShowWindow()-Funktion mit folgendem Code zu detouren:

    #include <windows.h>
    #include "detours.h"
    
    int (WINAPI * Real_ShowWindow)(HWND hWnd, int nCmdShow) = ShowWindow;
    
    int WINAPI DetouredDialog(HWND hWnd, DWORD nCmdShow)
    {
    	MessageBox(NULL, "DIALOG CREATED!", NULL, NULL);
    	return Real_ShowWindow(hWnd, nCmdShow);
    }
    
    int WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
    	switch(dwReason)
    	{
    	case DLL_PROCESS_ATTACH:
    		{
    			DetourFunction((PBYTE)ShowWindow,(PBYTE)DetouredDialog);
    			break;
    		}
    	case DLL_PROCESS_DETACH:
    		{
    			DetourRemove((PBYTE)ShowWindow, (PBYTE)DetouredDialog);
    			break;
    		}
    	} return true;
    }
    

    Wenn ich jetzt jedoch die DLL z.B. in den Rechner injiziere, hängt sich dieser beim öffnen des Info / About Fensters auf..

    Ich möchte lediglich eine Nachricht ausgeben bevor das Fenster angezeigt wird 😞

    Und wann ist es sinnvoll DetourFunctionWithTrampoline anstatt der normalen DetourFunction anzuwenden?

    Danke im Voraus 😃


Anmelden zum Antworten