【问题标题】:how can I hide a device driver from the service controller?如何从服务控制器隐藏设备驱动程序?
【发布时间】:2015-08-30 16:58:51
【问题描述】:

我正在编写一个游戏 hack 并想在游戏运行时运行作弊引擎,anti hack 当前检测到用户模式和内核模式组件并终止游戏。我编写了一个设备驱动程序来挂钩 ZwQuerySystemInformation 以隐藏进程。我还想隐藏设备驱动程序,因为它目前仍被检测到。我知道我可以用 DKOM 做到这一点,但我更喜欢使用 SSDT 挂钩,有谁知道我应该挂钩什么 api 来过滤服务/驱动程序列表?

【问题讨论】:

  • 我认为您上错论坛了。有些地方他们专门研究此类问题。
  • Couldn't the device driver launch a kernel thread in the context of a suitably chosen process and then exit?或者甚至在必要时自行卸载?

标签: c windows drivers


【解决方案1】:

您可以从头到尾关注本文,并使用其提供的代码并对其进行自定义以满足您自己的需求:http://www.codeproject.com/Articles/46670/Service-Hiding

忠告,如果你不知道自己在做什么,最好不要玩这些东西。

另一方面,他们倾向于使架构和编译过程过于复杂,因此预计会出现一些问题,因为这不是一个简单的解决方案。但是,这应该解决并解决您的问题和需求。

编辑:

您需要挂钩服务 API,该 API 负责向您显示当前在您的计算机上运行的服务。一个示例是“services.exe”,这是您需要修改/更改以正确隐藏驱动程序的所有数据结构。特别是SERVICE_RECORD 结构和以下成员也需要修改:PrevNextServiceName。一旦你在services.exe 中找到了这样的结构,它就会回到基本算法101。这是从那些双向链表中删除你想要隐藏的所需驱动程序。下图由前面提到的文章提供。

这是隐藏服务背后的基本或一般规则。

【讨论】:

  • 我的坏事还是新手,慢慢掌握所有规则,但链接实际上包含了他要求的完整解决方案。我给了他期望和注意的内容。这样就足够了,是吗?还是我应该更多地重复文章所说的内容?
  • 好的,我明白你的意思了。但是,我是该领域的专家。但是,我觉得没有必要重复一个在其他地方已经清楚解释的主题。检查我的其他答案,您会发现我确实知道我在说什么以及我将回答一个问题的时间长度。 :) 无论如何,让我对其进行一些编辑以包含解释和简短答案。 :)
  • 注意到并感谢您提出。任何建设性的批评总是受到高度欢迎!希望我已经正确编辑。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-17
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
相关资源
最近更新 更多