Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * little sample for hooking LoadLibrary
- * by namespace
- */
- #include <windows.h>
- #include <detours.h>
- #define WIN32_LEAN_AND_MEAN
- #pragma comment(lib, "detours.lib")
- typedef HRESULT (WINAPI *oLoadLibrary) (LPCSTR lpFile);
- oLoadLibrary pLoadLibrary;
- DWORD dwLoadLibrary;
- HRESULT WINAPI myLoadLibrary(LPCSTR lpFile)
- {
- if (lpFile == "forbidden.dll")
- {
- SetLastError(0);
- return ERROR_SUCCESS;
- }
- return pLoadLibrary(lpFile);
- }
- DWORD APIENTRY MainThread(LPVOID lpArgs)
- {
- HMODULE hKernel32 = NULL;
- do
- {
- hKernel32 = GetModuleHandle("kernel32.dll");
- Sleep(200);
- } while (!hKernel32);
- dwLoadLibrary = (DWORD) GetProcAddress(hKernel32, "LoadLibrary");
- if (dwLoadLibrary != 0) pLoadLibrary = (oLoadLibrary) DetourFunction((PBYTE) dwLoadLibrary, (PBYTE) myLoadLibrary);
- return TRUE;
- }
- BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved)
- {
- if (dwReason == DLL_PROCESS_ATTACH) CreateThread(NULL, NULL, NULL, &MainThread, NULL, NULL);
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement