防止程序被任务管理员强行杀死

时间:2014-02-19 22:26:47

标签: c#

我的程序需要优雅地停止,否则会导致很多不稳定因素,甚至可能导致BSOD。

如何阻止通过任务管理器关闭它?如果我没记错,诺顿会这样做。

1 个答案:

答案 0 :(得分:0)

使用普通可执行文件无法执行此操作。如果您在内核中深入了解可能会导致BSOD,那么您应该编写内核驱动程序(当然不是C#)。

来自Raymond Chen:

  

程序可以尝试让自己更难杀死(拒绝PROCESS_TERMINATE访问,拒绝PROCESS_CREATE_THREAD访问,这样人们就可以通过CreateRemoteThread(EndProcess),拒绝PROCESS_VM_WRITE,这样人们就可以乱写你的堆栈并让你双重失败,拒绝PROCESS_SUSPEND_RESUME,以便他们不能暂停你),但最终你无法阻止他们,比如提升到Debug权限,调试你的流程,以及将EIP移动到" ExitProcess"