Tut doch nicht so, ihr kranken Gestalten hängt doch selbst 24/7 auf /b/ ab. :D
weisst du warum? die dll die dabei ist funktioniert ja und ich denke mal dass das der selbe code is oder? xDQuote:
ISO C++ forbids casting between pointer-to-function and pointer-to-object
#include <windows.h>
#include <detours.h>
#pragma comment(lib, "detours.lib")
DETOUR_TRAMPOLINE(int WINAPI origMBox(HWND hWnd, char* lpText, char* lpCaption, UINT uType), MessageBoxA);
int WINAPI MyMBox(HWND hWnd, char* lpText, char* lpCaption, UINT uType)
{
return origMBox(hWnd, "I've been detoured :(", ":(", uType);
}
BOOL WINAPI DllMain(HANDLE HDllHandle, DWORD Aufrufgrund, LPVOID Reserved)
{
if(DLL_PROCESS_ATTACH == Aufrufgrund)
DetourFunctionWithTrampoline((PBYTE)&origMBox, (PBYTE)&MyMBox);
return TRUE;
}
( ja da stehen so viele "syntax error before `{' token" im error log )Quote:
In function `void* _Detours_GetVA_MessageBoxA()':
invalid conversion from `int (*)(HWND__*, const CHAR*, const CHAR*, unsigned int)'
function `int origMBox(HWND__*, char*, char*, unsigned int)':
syntax error before `{' token
At global scope:
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
syntax error before `{' token
DETOUR_TRAMPOLINE(int WINAPI origMBox(HWND hWnd, char* lpText, char* lpCaption, UINT uType), MessageBoxA);
ich hab diese detours.h und .lib:Quote:
Depends on what Dev-cpp installation you are talking about. If
you had downloaded Dev-cpp with MinGW ,(4.9.9.0) the binaries
(lib files) are not compatible with the linker distributed with Dev-cpp.
#pragma comment(lib, "detours.lib")
#include <windows.h>
#include "detours.h"
int (__stdcall* InsertDateTime)(int x); //Originale Funktion
int MyInsertDateTime(int x) //Meine Funktion
{
//Messagebox
MessageBox(NULL, "lol", "lol", MB_OK);
return InsertDateTime(x);
}
BOOL APIENTRY DllMain(HANDLE hInst, DWORD reason, LPVOID lpReserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
InsertDateTime = (int (__stdcall*)(int))DetourFunction((PBYTE)0x01006F10, (PBYTE)MyInsertDateTime);
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
DetourRemove((PBYTE)0x1006F10, (PBYTE)InsertDateTime);
break;
}
return TRUE;
}
ne dll kommt dabei trotzdem nich raus -.-"Quote:
warning: ignoring #pragma comment
warning: extra tokens at end of #endif directive
In function `_Z7DllMainPvmS_':
undefined reference to `_DetourFunction@8'
undefined reference to `_DetourRemove@8'
||=== Build finished: 2 errors, 2 warnings ===|
Dito, kann ich mir auch nicht vorstellen wieso es dort Fehler auswerfen sollte.Quote:
Was gibt dir denn VsC++ für Errors? Ich kann mir das nicht vorstellen. Wenn du Hilfe brauchst schreib mich mal in MSN ([Only registered and activated users can see links. Click Here To Register...]) bzw. ICQ 250173498 an, und ich gucke ob ich dir helfen kann.
Ist daran etwas falsch ?Quote:
int WINAPI mybox (HWND hwnd, char* lpText, char* lpCaption, UINT uType)
{
MessageBox( hwnd, "erster", "MB", uType );
return origbox( hwnd, lpText, lpCaption, uType );
}
int WINAPI mybox (HWND hwnd, char* lpText, char* lpCaption, UINT uType)
{
MessageBox( hwnd, "erster", "MB", uType );
return origbox( hwnd, lpText, lpCaption, uType );
}
int WINAPI mybox (HWND hwnd, char* lpText, char* lpCaption, UINT uType)
{
origbox( hwnd, "erster", "MB", uType );
return origbox( hwnd, lpText, lpCaption, uType );
}
Dadurch, dass MessageBoxA als externe Funktion definiert ist (#include <windows.h>), wird Platz für deren Adresse reserviert, der beim Laden der Dll mit der dynamisch herausgefundenen Adresse beschrieben wird.Quote:
Originally Posted by volchokAber mal eine Frage zum ersten Parameter der DetourFunction, lässt sich jede WinApi Funktion so leicht hooken indem man lediglich den Namen der Funktion angibt ?
Ich hätte gedacht man muss die Adresse mit GetProcAdress aus dem Modul holen.