如何创建在任务管理器或服务列表中不可见的进程

时间:2011-02-07 05:31:21

标签: c# c++ windows-7 process

  

可能重复:
  Hide a C# program from the task manager?

我需要创建一个企业级活动监视器进程,其中用户不应该使用任务管理器或其他方法终止。也许它应该是一个隐藏的过程。这可能吗?有没有解决方法?我更喜欢使用C#然后使用C++(使用Visual C ++编译器)。

非常感谢

2 个答案:

答案 0 :(得分:6)

相关:

Hide a C# program from the task manager?

https://stackoverflow.com/questions/759466/is-it-possible-to-hide-console-c-application-from-task-manager

简短的回答是:不,你不能(合法地)将它隐藏在任务管理器中,除非你用Windows服务包装它。有多种方法可以阻止您的申请结束。

答案 1 :(得分:2)

关于“我如何阻止用户做X”的主题,答案是安全性。如果您希望用户拥有对其计算机的完全访问权限,则无法限制他们。如果要限制用户,请相应地更改安全策略。

“但是我的员工不会喜欢我们不相信他们的完全管理员权利的想法” - 老实说,你不相信他们;这就是你实现这个的原因。你不希望员工欺骗你,他们也应该期待你。

除了其他人所说的,一个更简单的解决方案就是创建两个进程 - 一个REAL进程和一个“sentinel”。基本上,每隔100ms左右,只需快速检查一下,看看其他过程是否健康,如果不是,请启动它。这很容易解决(例如,使用kill.exe),但考虑到您的用户是完全管理员,其他所有解决方案也是如此。

真正阻止他们杀死您的应用的合法解决方案是通过典型的Windows安全限制访问 - 限制用户访问该进程。不是通过廉价的隐藏和混淆。