Exemple #1
0
GENERATE_INTERCEPT_HEADER(LoadLibraryExA, HMODULE, WINAPI, _In_ LPCSTR lpLibFileName, _Reserved_ HANDLE hFile, _In_ DWORD dwFlags) {
	SDLOG(2, "DetouredLoadLibraryExA %s\n", lpLibFileName);
	string fn(lpLibFileName);
	if(fn.find("GeDoSaTo") != fn.npos) return GetCurrentModule(); // find out why we need this 
	HMODULE mod = TrueLoadLibraryExA(lpLibFileName, hFile, dwFlags);
	// restart detour in case we missed anything
	if(mod) restartDetour(lpLibFileName);
	return mod;
}
Exemple #2
0
HMODULE WINAPI HookLL::HookLoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
{
	if (!InputHookManager::Get().GetInputHook().GetState(InputHook::HOOK_LL)) return TrueLoadLibraryExA(lpLibFileName, hFile, dwFlags);

	if (SelfCheckA(lpLibFileName))
	{
		PrintLog("LoadLibraryExA");
		InputHookManager::Get().GetInputHook().StartTimeoutThread();

		std::string path;

		if (ModulePath(&path, InputHookManager::Get().GetInputHook().GetEmulator()))
			return TrueLoadLibraryExA(path.c_str(), hFile, dwFlags);
		else
			return TrueLoadLibraryExA(lpLibFileName, hFile, dwFlags);
	}

	return TrueLoadLibraryExA(lpLibFileName, hFile, dwFlags);
}