我的程序需要优雅地停止,否则会导致很多不稳定因素,甚至可能导致BSOD。
如何阻止通过任务管理器关闭它?如果我没记错,诺顿会这样做。
答案 0 :(得分:0)
使用普通可执行文件无法执行此操作。如果您在内核中深入了解可能会导致BSOD,那么您应该编写内核驱动程序(当然不是C#)。
来自Raymond Chen:
程序可以尝试让自己更难杀死(拒绝PROCESS_TERMINATE访问,拒绝PROCESS_CREATE_THREAD访问,这样人们就可以通过CreateRemoteThread(EndProcess),拒绝PROCESS_VM_WRITE,这样人们就可以乱写你的堆栈并让你双重失败,拒绝PROCESS_SUSPEND_RESUME,以便他们不能暂停你),但最终你无法阻止他们,比如提升到Debug权限,调试你的流程,以及将EIP移动到" ExitProcess"