【问题标题】:Windows : How to protect process from getting killed in C/C++Windows:如何保护进程不被 C/C++ 杀死
【发布时间】:2014-09-11 05:16:48
【问题描述】:

是否有任何“GODLY”方法可以保护我的进程不被以下原因杀死: 1>任务管理器 2>命令提示符--强行杀死

我尝试过的事情:1.挂钩打开进程和终止进程

我得到的结果:不多,我只能保护它免受任务管理器的影响,但它会通过命令提示符 task kill 命令被杀死

【问题讨论】:

  • 不知道或判断你的行为,但我真的希望没有。
  • 这仅适用于我正在处理的项目。我不希望任何人终止我的进程..我希望你注意到你不能杀死 mcafee mcshield.exe..这是我想要实现的同一件事
  • 是的,我知道(将它们放在我们的雇主框中)。您应该防止您的进程被“权限”杀死(即让它们以适当的用户身份运行)。如果您不能在自己的系统上杀死一个 amok 进程,那将是完全烦人的
  • 不知道确切的答案,但它在处理WM_CLOSE而不被杀死和Terminate Process的某个地方
  • 正确的解决方案是不要向任何可能以这种方式滥用它的人授予管理员访问权限。例如,AV 经常使用的“其他”解决方案需要内核模式代码,而 IIRC 您必须使用不受支持的方法或与 MS 签订合同才能使用其特殊的 AV 接口。一种更简单的方法是使用 RtlSetProcessIsCritical,请参阅 codeproject.com/Articles/43405/…

标签: c++ c windows dll


【解决方案1】:

修改进程并不难,因此除了管理员之外的任何其他用户都无法终止它。

查看: GetKernelObjectSecurity 设置内核对象安全

简而言之:获取要保护的进程的安全描述符,修改其DACL并写回。您以这种方式拒绝访问的用户在尝试终止进程时会收到“拒绝访问”。

【讨论】:

  • 对每件“调查”的事情做一个简短的总结会很方便;将它们链接到官方文档/好的介绍性文章会更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
相关资源
最近更新 更多