检测任何使用OpenProcess的程序

Detect any program that uses OpenProcess?

本文关键字:程序 OpenProcess 任何使 检测      更新时间:2023-10-16

保护我的程序我想有一个检查,检测任何程序执行OpenProcess与我的PID?我想防止其他程序轻易地获得我程序的句柄。

我有什么选择?(WinAPI等)当另一个程序使用OpenProcess时,我的程序是否会收到任何通知?

谢谢

我有什么选择?(WinAPI等)我的程序接收任何通知,只要另一个程序使用OpenProcess?

不,OpenProcess发生在内核中,完全不与正在打开的进程交互而运行。由于它是由调试器使用的,并且可能在您的进程卡住或挂起时发生,因此让您的进程"意识到"它已被打开的某种需求是不切实际的。

您唯一的选择(这是一个糟糕的选择)是在OpenProcess系统调用上使用某种形式的拦截。请注意,OpenProcess有有效的用途,我认为许多病毒扫描程序在某些时候或另一个点使用它-防止病毒扫描程序进入"我被攻击了"模式,很可能。

如果你认为你可以用一种不容易规避的方式做到这一点,那么你就是在欺骗自己。将另一层钩子放入OpenProcess系统调用中,跳过您的干扰,只调用"真正的"OpenProcess,这并不是非常困难。所以,假设你的程序真的很有趣,有人会找到一种方法……