【发布时间】:2011-09-27 14:18:06
【问题描述】:
我有来自 C++ DLL 的源代码。此 DLL 是应用程序的一部分。我想挂钩一个由另一个DLL加载到内存中的函数,以便我的挂钩函数被所有其他DLL而不是原始函数调用。我把这段代码放在我的代码中:
#include <windows.h>
#include "detours.h"
#pragma comment(lib, "detours.lib")
//Function prototype
int (__stdcall* OriginalFunction)();
//Our hook function
int FunctionHook()
{
//Return the real function
return OriginalFunction();
}
//On attach set the hooks
OriginalFunction = (int (__stdcall*)())DetourFunction((PBYTE)0x0100344C, (PBYTE)FunctionHook);
问题是:如果我在一个 DLL 中搜索偏移量并通过此偏移量修补函数,这不是错的吗(我认为它更复杂,因为我在另一个 DLL 中并且想为所有 DLL 挂钩该函数)?顺便说一句,有人知道我如何在 IDA PRO 中获得标准(fex. 0x0100344C)偏移量吗?
【问题讨论】:
标签: c++ windows hook dll-injection detours