Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Windows.h>
- #include "Detour.h"
- HMODULE hModule = GetModuleHandleA("User32.dll");
- DWORD dwMessageBoxA_location = (DWORD)GetProcAddress(hModule, "MessageBoxA");
- DWORD dwMessageBoxW_location = (DWORD)GetProcAddress(hModule, "MessageBoxW");
- typedef int (WINAPI* tdMessageBoxA)(HWND, LPCSTR, LPCSTR, UINT);
- typedef int (WINAPI* tdMessageBoxW)(HWND, LPCWSTR, LPCWSTR, UINT);
- tdMessageBoxA p_tdMessageBoxA = NULL;
- tdMessageBoxW p_tdMessageBoxW = NULL;
- int WINAPI dtMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType) {
- lpText = "Detoured MessageBoxA";
- return p_tdMessageBoxA(hWnd, lpText, lpCaption, uType);
- }
- int WINAPI dtMessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType) {
- lpText = L"Detoured MessageBoxW";
- return p_tdMessageBoxW(hWnd, lpText, lpCaption, uType);
- }
- BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
- if (fdwReason == DLL_PROCESS_ATTACH) {
- p_tdMessageBoxA = (tdMessageBoxA)
- DetourFunction((PBYTE)dwMessageBoxA_location, (PBYTE)dtMessageBoxA);
- //DetourFunction((PBYTE)MessageBoxA, (PBYTE)dtMessageBoxA); would also work.
- p_tdMessageBoxW = (tdMessageBoxW)
- DetourFunction((PBYTE)dwMessageBoxW_location, (PBYTE)dtMessageBoxW);
- //DetourFunction((PBYTE)MessageBoxW, (PBYTE)dtMessageBoxW); would also work.
- } return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement