检测使用OpenProcess的任何程序?

时间:2013-06-19 08:53:55

标签: c++ windows winapi handle openprocess

保护我的程序我想检查一下检测用我的PID执行OpenProcess的程序吗?我想防止其他程序轻松处理我的程序。

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

由于

1 个答案:

答案 0 :(得分:1)

  

我有哪些选择? (WinAPI等)我的程序是否收到任何   另一个程序使用OpenProcess时会立即通知吗?

不,OpenProcess在内核中发生,并且在没有与正在打开的进程交互的情况下完全运行。由于它是由调试程序使用(用于)并且可能在您的进程被卡住或挂起时发生,因此有一些需要让您的进程“意识到”它已被打开是不切实际的。

你唯一的选择(那是一个糟糕的选择)是在OpenProcess系统调用上使用某种形式的拦截。请注意,OpenProcess有一些有效的用途,我认为许多病毒扫描程序会在某些时候使用它 - 防止病毒扫描程序很可能进入“我受到攻击”模式。

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