2010-08-09 56 views
1

需要多长时间为Windows NT内核/系列内核开发内核补丁或驱动程序,这将引入新功能或替换现有功能?为Windows开发内核补丁或驱动程序?

例如,添加一个不同的加密算法,或实现某种新的安全模型。

实际编写内核补丁和驱动程序之间有哪些优点/缺点?

理论上可以绕过一个驱动程序,内核补丁程序无法做到这一点?

我了解Windows内核是专有的,这是很难写一个内核补丁吧,不过这也正是一些公司,尤其是AV公司做的,没有从微软的合作,所以它是可能的...

+0

你想实现什么?内核补丁不适用于Windows。在windows下,你可以在内核中安装钩子,或者在静态(记录)的API中加载驱动程序,这些API在不久的将来不会改变。 – Christopher 2010-08-09 11:09:43

回答

7

不同的加密算法

这是通过延伸的加密提供者来完成。有一个你可以做到的框架。

新的安全模式

什么样的新的安全模式?

  • 如果您想对一个应用程序进行更具体的控制,您可以构建一个沙箱。
  • 如果您想要对操作系统进行更具体的控制,请将操作系统置于虚拟机中。
  • 如果你有一些全新的东西,你必须编写一个新的内核。正确的管理是一个非常广泛的话题,您必须触及每个入口才能使您的解决方案发挥作用。

理论上可以绕过驱动程序,内核补丁不能?

不,是......你认为驾驶员如何改变安全模式?

但这正是几家公司,特别是AV公司所做的。

不,他们没有。他们有一个内核驱动程序,它挂钩了正确的功能。大多数AV软件会挂接ReadFile/WriteFile/CreateFile API,在这些API中检查“恶意代码序列”。这不是一个安全模型。它只是一个二进制“可能访问/不可访问”检查。

+0

对于大多数AV软件来说+1是钩住ReadFile/WriteFile/CreateFile API的。 – fardjad 2010-08-09 11:24:41

+0

你的答案充满了很多不正确的信息,并没有解决问题。阅读KPP,为什么会出现这样的问题。 – 2010-08-10 05:52:04

+0

清理了'错误'位。但是我不明白,当你看到这个问题时,这些信息是错误的。重复拿走的东西'你无法轻松添加新的安全模型'。 – Christopher 2010-08-10 10:58:08

1

修改内核工作方式的正确方法是编写一个过滤器驱动程序,用于修改或侦听驱动程序之间传输的信息。

那是最接近合法的补丁

关于补丁的内核函数表...你不应该这样做的原因是:它不会在64 edtions工作。因为它不能在x64 edtion中工作,所以即使对于32位,WLK也不能证明您的驱动程序。如果你不能证明你的驱动程序,你最终会得到一个未经认证的驱动程序,这是非常危险的(例如,你不能预装在计算机上,然后通过认证)。

0

一般来说,扩展SSDT中的服务数量是可能的,但是它非常混乱,特别是Vista比以往更加不可能。我不是说不可能的,但它需要一个跳过几个篮球(一次;))。

否则我与DriverStack。正确的方法是编写过滤器驱动程序来修改现有服务,或者简单地编写驱动程序并创建可从UM(或KM)访问的CDO(控制设备对象),并且可以接收IRP以提供它所提供的服务旨在提供...

驱动程序自己机制来扩展内核。与几个FLOSS平台不同的是,Windows内核的界面非常稳定:o)

注意:如果AV公司并不是太大胆,它会诉诸过滤器驱动程序。是的,这最终也意味着某些功能被操纵,但是那些AVs 挂钩那些(Win32,即UM)API的声明是......好的,错误。可悲的是,我不可能为这个事实错误降低投票的答案(因为我在这里缺乏“声誉”)。过滤将以任何方式在内核中进行。通常通过FS过滤器驱动程序或SSDT挂钩的某些功能。 SSDT包含指向内核底层函数的函数指针,所以从UM你可以通过它的索引(“系统调用号码”)调用系统调用,就像在unixoid平台上一样。