在应用程序启动之前需要特定事件完

时间:2013-10-20 20:21:06

标签: c++ winapi detours

我正在使用一个应用程序(DLL),它使用Detours记录特定的WIN32调用。它被注入到通过过滤器的目标应用程序中。它必须绝对记录应用程序进行的每个调用,从应用程序入口点的第一条指令开始。

我现在正在寻找一种方法来使我的应用程序(始终运行的应用程序)尽可能快地注入DLL,最好不要让目标应用程序进行任何其他调用。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:3)

您可以使用AppInit_DLLs registry key将dll加载到进程中。该{d}在DLL_PROCESS_ATTACH User32.dll期间加载。对于常规应用程序,这应该在运行任何应用程序代码之前发生。

请注意AppInit_DLLs should be renamed Deadlock_Or_Crash_Randomly_DLLs

答案 1 :(得分:1)

据我所知,在Windows中没有直接的方法。

您的选择是:

  1. 在所有进程中挂钩CreateProcess(或更低版本)函数。创建新进程时,更改参数以将其创建为已挂起,注入和恢复(如果需要)。
  2. 使用驱动程序。