NT内核编程

时间:2008-10-07 09:51:44

标签: windows security kernel nt code-patching

我想知道从哪里开始,或者如何可能挂钩或修补Windows内核(XP及以上版本)。我特别感兴趣的是像McAfee Entercept这样的软件,或者某些修补内核的防病毒扫描程序。我想知道创业公司创建软件的可行性是多么可行,这些软件在内核中添加了功能(我知道KPP,并且它可能被绕过),以及任何这样做的改进。我无法找到简单的描述,只对Win32的经验有限。非常感谢任何帮助,

Ĵ

进一步澄清:我不是在追踪一个驱动程序,并且如果技术上可以将像PaX这样的东西移植到Windows中,那么我会感兴趣。这是一个糟糕的例子,因为Windows已经有了一个实现,但我感兴趣的是,如果可以移植类似的技术而无法访问NT源。

4 个答案:

答案 0 :(得分:2)

是的,很有可能挂钩内核。我强烈推荐这些图书Windows InternalsRootkits

这些应该可以为您提供所需的所有信息。

答案 1 :(得分:2)

Microsoft Detours库允许您拦截来自进程的API调用,并插入或替换您自己的代码。

请注意,成功完成此类操作可能需要的功能远远超过Win32的有限经验。可以想象,这可能是一个非常复杂的话题。

答案 2 :(得分:2)

驱动程序开发根本不是一件容易的事。防病毒软件需要处理文件系统(文件系统过滤器驱动程序),这会使生活变得更加复杂。如果你试图描述你想要实现更详细的内容,那将会非常有用。

最推荐的驱动程序开发资源是OSR。有2个相关的邮件列表:

  1. ntdev用于一般驾驶员开发
  2. ntfsd用于文件系统驱动器开发
  3. 可以找到图书清单here

    除非驱动程序是您的核心忙碌(在这种情况下找到具有内核经验的人),我强烈建议外包这项工作。在上面的列表中,您可以找到大量的顾问。

    Windows源码基本上无法访问:)遗憾的是。要使用虚拟内存管理器,您必须处于内核模式(如果可以的话)。

    尝试在ntdev上提出这个问题,你会问世界上大多数内核开发人员。你需要提出更具体的问题才能得到合理的答案(我会看一下线程,有趣的话题) 如果正确理解您想要做什么,这在Windows上是不可能的。至少不是没有主要的逆向工程工作,但我主要使用标准类型的驱动程序,所以我认为我不知道得出最终的结论。

    对评论的回应:

    我不确定Entercept到底做了什么(在产品说明中没有找到任何暗示他们正在播放内存或进程权限的内容)。 因此,定义最终目标而非特定技术如何实现这一目标可能会更有成效。

    对评论2的回应:

    1.1。什么是LIDS?

    LIDS是对谢华刚和Philippe Biondi编写的Linux内核的增强。它实现了几个本机不在Linux内核中的安全功能。 其中一些包括:
      1.强制访问控制(MAC) - 不知道什么是真正的意思   2.端口扫描检测器 - 这在this站点上看起来绝对可行   3.桩保护 - 上面说明的文件系统过滤器驱动程序   4.流程保护 - 您可以在驱动程序hook process creation中查看ntdev存档中有很多关于此问题的discussions

答案 3 :(得分:-1)

你谈到修补内核而没有提供一个合理的解释,说明你为什么要这样做,以及为什么你认为官方API不会让你到达你想要的地方。因此,我们必须假设您计划编写某种恶意软件 - 不要指望stackoverflow上的任何人帮助您解决此问题!