如何在Windows上进行完全访问拒绝过程?

use*_*738 -3 security winapi

我正在制作一个家长控制监控系统的安全软件,我不希望任何用户/管理员或程序杀死我的进程.

我尝试过使用SetSecurityInfo()但是没有用.然后SetKernelObjectSecurity,那也没有做我想要的.

我该怎么做?

我也希望能够清楚地解释所提供的任何代码.

编辑:如果是这样,防病毒程序怎么做?你能帮我么.我是WINAPI的新手我想知道一些简单的事情......很抱歉给你们带来麻烦,但至少你们可以告诉我一些"看门狗"过程的代码...

Cod*_*ray 5

这不是由进程本身控制的,当然也不是由它调用一个神奇的API函数.如果是这样的话,所有恶意软件都会将自己设置为"不可杀戮"并完全打开您的系统.相反,它是可执行文件的安全属性 - 特别是"终止"权限.

您可以通过下载Process Explorer自行探索:

  1. 打开流程的属性
  2. 切换到"安全"选项卡
  3. 单击"权限"按钮
  4. 单击"高级"按钮
  5. 选择所需的用户或组
  6. 更改"终止"权限的设置.

系统进程向SYSTEM用户以外的所有用户拒绝"终止"权限.这就是为什么即使管理员收到"拒绝访问"消息,因为他们缺少系统进程的"终止"权限.

当然,即使正确设置此属性也不会使该过程"不可杀死".这只会让它变得更加困难.有大量可在线免费下载的软件允许用户杀死此类进程,任何具有Windows安全模型基本知识的人都可以在不需要特殊软件的情况下解决它.

这对于家长控制软件来说都没有多大意义.您应该使用Windows安全模型,而不是尝试使用它.以管理员身份(即父级帐户)安装软件,然后使用受限用户帐户设置子级(ren).受限制的用户帐户将无法终止您的进程,因为他们没有必要的权限.如果管理员想要杀死你的进程,那么你应该让他们,而不是给他们一些虚假的"拒绝访问"的头痛.