挂钩OpenProcess()或ReadVirtualMemory()在win32 userland代码

有没有办法钩住/绕过OpenProcess()ReadProcessMemory()函数调用我自己的自定义函数?

无:

  1. Zw / NtOpenProcess上的内核驱动程序,需要rootkit攻击或驱动程序签名才能部署
  2. 在每个进程中注入.dll,垃圾邮件浪费资源,并警告许多杀毒软件

我试图阻止其他进程获取HANDLE或读取PID向量的内存。

如果你不在kernelmode上调用globaly,你必须进入每个目标进程。 一个DLL将是最简单的解决方案,但你可以做更多的hacky和繁琐的东西。

使用OpenProcess和ReadProcessMemory(巧合!)和WriteProcessMemory来修改每个目标进程。 用过滤器功能钩住所需的功能并修补所需的功能。

请注意,如果有人知道你在做什么,并想阻止它,你就什么都做不了。 他可以重新修补你的代码,或者使用一些直接的asm调用来调用API(SYSCALL)。