【发布时间】:2018-06-01 07:01:56
【问题描述】:
我编写了一个 Windows 服务来完成一项关键工作。 我的程序有 5 个线程执行一项关键工作,我不希望它们被终止。
我使用进程黑客,在线程选项卡中,我可以终止 5 个线程中的任何一个,而不会导致整个程序终止(因为程序只是容器) 当用户或黑客(我的程序是一个安全程序,用户可能想让它不起作用)终止一个线程(如果线程被挂起但没有策略阻止或修复终止,我会恢复线程)时,关键工作没有完成线程数)
如何保护这 5 个线程不被终止?
(我已经让程序本身很关键,但是当线程可以轻松终止时它确实没有价值)
【问题讨论】:
-
就像 Eric Lippert 说的:stackoverflow.com/questions/16968581/…
-
与其给你的用户安全权限去做你不希望他们做的事情,然后编写一个以同等权限运行的程序来试图阻止他们,你应该实际上授予用户执行您不希望他们能够执行的操作的权限。安全系统的存在是有原因的,使用它。
-
我不会杀死线程。我会先暂停它,然后冻结它。你的关键工作不会完成。
-
@emaditaj 这是一个不可能的问题。根据定义不可能。无论你试图做什么,它总是会被打败的。您需要为您的问题使用合适的解决方案,一个实际上能够解决问题的解决方案,即实际上不授予用户安全权限来执行您不希望他们能够做的事情。
-
你真的搞错了。特权用户可以进行特权行为。别担心。让安全系统发挥作用。
标签: c# multithreading security winapi