我有一个使用外部DLL的Win32应用程序(控制台应用程序)。 DLL导出两个函数(Run和SecretFunction),我需要知道DLL何时进入SecretFunction。我在运行时加载DLL(我通过命令行参数获取路径)。
我不能使用共享事件。
我得到的两个提示是对异常方法使用一些类似的逻辑,并且可能使用VirtualQuery / VirtualProtect。
有人能指出我正确的方向吗?
澄清:
我的程序将调用Run函数。 Run函数可能会也可能不会调用SecretFunction。我想从我的程序中知道是否调用了SecretFunction。
我有以下代码,所以我有函数的地址:
pfn_SecretFunction pfnSecretFunction = (pfn_SecretFunction)GetProcAddress(pluginDLLModule, "SecretFunction");
答案 0 :(得分:1)
注入DLL并在要跟踪的函数中添加代码(监视器)。
答案 1 :(得分:0)
在到达(SecretFunction)函数时在DLL中抛出异常,并在exe(控制台)中捕获(并吞下)异常。