从任务管理器隐藏进程

时间:2014-03-14 18:29:35

标签: .net vb.net process taskmanager

我正在为游戏做GameGuard,但不希望别人能够关闭游戏。我想让它从任务管理器中消失。

我尝试使用:

Me.ShowInTaskbar = False

但它没有用。从那以后,我在互联网上做了很多研究,没有任何例子或说明如何做到这一点。

人们认为隐藏进程是黑客般的,但就我而言,我是为游戏GameGuard做的。

我希望它完全离开任务管理器。

2 个答案:

答案 0 :(得分:4)

AFAIK你无法隐藏任务管理器中的进程,这是一件好事。阻止用户查看和结束活动进程是明显的,完全错误。你能想象成为一名管理员而又无法在你的机器上结束一个过程吗? :)

对于ShowInTaskBar属性,它仅确定表单是否作为任务栏按钮可见。与任务管理器无关。

回答下面的评论:

如果您正在使用Winforms,那么在您的表单的Closing事件中,有一个CloseReason属性可以通知您有关从任务管理器关闭的应用程序。不幸的是,您会发现it ain't 100% reliable

答案 1 :(得分:0)

这是许多人在这里提出的一个过于质疑的问题,解决方案的执行复杂性与这种要求的必要性有所不同。以下是您可能的解决方案:

  • DLL注入+ DLL挂钩任务管理器和钩子API处理进程的枚举。关于这些主题,这里有很多问题和答案,所以在发布另一个新问题之前,请先阅读。

  • DKOM(直接内核对象操作),它要求您编写旧版WDM驱动程序并更改此类进程的EPROCESS。我在这里进行了详尽的解释IRP_MJ_DEVICE_CONTROL to hide a process?

  • 使用在x64之外无法正常工作的SSDT,并且由于索引从版本更改为版本以及从一个Service Pack更改为另一个,因此在更新后仍然不能保持工作。所以我个人不推荐最后一个。