从任务管理器中隐藏进程
Posted
技术标签:
【中文标题】从任务管理器中隐藏进程【英文标题】:Hide Process from Task Manager 【发布时间】:2014-03-14 18:29:34 【问题描述】:我正在为游戏制作 GameGuard,但不希望人们能够关闭它。我想让它从任务管理器中消失。
我尝试使用:
Me.ShowInTaskbar = False
但它没有工作。从那时起,我在互联网上做了很多研究,没有任何一个例子或说明如何做到这一点。
人们认为隐藏进程类似于黑客,但就我而言,我这样做是为了游戏 GameGuard。
我希望它完全从任务管理器中消失。
【问题讨论】:
任务BAR 或任务MANAGER??? Crono,TaskMANAGER 进程。 您可以从“任务”选项卡中隐藏它,而不是从进程中隐藏它……至少在 64 位的 Vista+ 上的 .net 中是无法隐藏的。使用 windows xp,您可能会发现一些性能不佳的旧代码可能会实现这一点,也许如果您想在 windows 7+ 中尝试它,您可以更加努力地搜索它;) 【参考方案1】:AFAIK,您无法在任务管理器中隐藏进程,这是一件好事。阻止用户查看和结束活动进程是显而易见的,而且是完全错误的。您能想象成为管理员却无法结束您机器上的进程吗? :)
至于ShowInTaskBar
属性,它只确定表单是否作为任务栏按钮可见。与任务管理器没有任何关系。
在下面回答您的评论:
如果您使用的是 Winforms,那么在表单的 Closing
事件中有一个 CloseReason
属性可以通知您有关应用程序正在从任务管理器中关闭的信息。不幸的是,你会发现it ain't 100% reliable。
【讨论】:
是否可以通过程序管理器的任务关闭,它在关闭前运行命令? 您可能希望您的程序需要运行 GameGuard 才能运行。也许您的游戏和 GameGuard 可以以某种心跳模式相互交谈。 Crono, ` If e.CloseReason = CloseReason.UserClosing Then Dim pProcess() As Process = System.Diagnostics.Process.GetProcessesByName("CabalMain") For Each p As Process In pProcess p.Kill( ) Next End End If ` @LeonardoJoksan 我不确定你在这里问我什么。如果你有一个新问题,你应该开始一个新的话题。【参考方案2】:这是很多人在这里提出的一个过度提问的问题,解决方案根据实现的复杂性和此类要求的必要性而有所不同。以下是您可能的解决方案:
任务管理器中的 DLL 注入 + DLL 挂钩和处理进程枚举的挂钩 API。这里有很多关于这些主题的问题和答案,所以在发布另一个新问题之前,请先阅读它。
DKOM(直接内核对象操作)要求您编写旧版 WDM 驱动程序并更改相关进程的EPROCESS
。我已经在这里详细解释了IRP_MJ_DEVICE_CONTROL to hide a process?
使用 SSDT,它不能在 x64 上开箱即用,并且由于索引从一个版本到另一个版本以及从一个服务包到另一个服务包的变化,它不够通用,无法在更新后继续工作。所以我个人不推荐最后一个。
【讨论】:
以上是关于从任务管理器中隐藏进程的主要内容,如果未能解决你的问题,请参考以下文章