【发布时间】:2011-11-09 17:31:00
【问题描述】:
首先,我不想监控键盘或鼠标,我只想将我的dll加载到其他进程的地址空间中。我目前正在使用外部非托管 dll 执行此操作,该 dll 执行 WriteProcessMemory、VirtualAllocEx 和 CreateRemoteThread。但这通常被检测为病毒。 SetWindowsHookEx 对于防病毒软件会更安全吗?如果是这样,如何在 C# 中使用它 - 我应该使用什么 WH_* 值?
编辑: 我的 DLL 是非托管的(用 C 编写)
【问题讨论】:
-
那么你想要一个使用 C 语言的 SetWindowsHookEx 的例子吗?挂钩的类型取决于您希望何时调用该挂钩。
-
您的防病毒软件将其标记为可疑的原因是因为将代码注入其他进程通常是一件坏事 (TM)。如果您设法通过 WPM/VAX/CRT 以外的其他方式实现此目的,您仍然会被防病毒软件标记,因为他们不反对 CRT - 他们反对您尝试将代码注入另一个进程。
标签: c# c winapi hook code-injection