我怎么知道外部DLL是否进入函数?

时间:2012-05-27 09:15:02

标签: c windows winapi

我有一个使用外部DLL的Win32应用程序(控制台应用程序)。 DLL导出两个函数(Run和SecretFunction),我需要知道DLL何时进入SecretFunction。我在运行时加载DLL(我通过命令行参数获取路径)。

我不能使用共享事件。

我得到的两个提示是对异常方法使用一些类似的逻辑,并且可能使用VirtualQuery / VirtualProtect。

有人能指出我正确的方向吗?

澄清:

我的程序将调用Run函数。 Run函数可能会也可能不会调用SecretFunction。我想从我的程序中知道是否调用了SecretFunction。

我有以下代码,所以我有函数的地址:

pfn_SecretFunction pfnSecretFunction = (pfn_SecretFunction)GetProcAddress(pluginDLLModule, "SecretFunction");

2 个答案:

答案 0 :(得分:1)

注入DLL并在要跟踪的函数中添加代码(监视器)。

答案 1 :(得分:0)

在到达(SecretFunction)函数时在DLL中抛出异常,并在exe(控制台)中捕获(并吞下)异常。