2010-08-09 4 views
1

Сколько времени потребуется, чтобы разработать патч для ядра или драйвер для ядра ядра/серии Windows NT, который будет вводить новые функции или заменять существующие функции?Разработка патча ядра или драйвера для окон?

Например, чтобы добавить другой алгоритм шифрования или реализовать какую-то новую модель безопасности.

Каковы преимущества/недостатки фактического написания патча ядра и драйвера?

Можно ли теоретически обойти драйвер, каким-то образом патч ядра не может?

Я понимаю ядро ​​окна является собственностью, и это трудно написать патч ядра для него, но это именно то, что несколько компаний, в частности AV компании делают, без сотрудничества с Microsoft, так что можно ...

+0

Чего вы хотите достичь? Патч ядра - это не путь в окна. Под окнами вы устанавливаете крючки в ядре или загружаете драйверы из статического (документированного) API, который не изменится в ближайшем будущем. – Christopher

ответ

7

Другой алгоритм шифрования

Это делается путем расширения поставщика шифрования. Существует основа, где вы можете это сделать.

Новая модель безопасности

Что новая модель безопасности?

  • Если вы хотите более конкретный контроль над одним приложением, вы создаете изолированную программную среду.
  • Если вам нужен более конкретный контроль над ОС, вы помещаете ОС в виртуальную машину.
  • Если у вас есть что-то совершенно новое, вам нужно написать новое ядро. Правильное управление - это действительно широкая тема, где вам нужно прикоснуться к каждой точке входа, чтобы ваше решение работало.

Может ли водитель теоретически обойти, таким образом патч ядра не может?

Нет и да ... Как вы думаете, что водитель изменяет модель безопасности?

, но это именно то, что делают несколько компаний, особенно компании AV.

Нет, они этого не делают. У них есть драйвер ядра, который перехватывает нужные функции. Большинство программ AV перехватывает API-интерфейс ReadFile/WriteFile/CreateFile, в котором они проверяют наличие «вредоносных кодовых последовательностей». Это не модель безопасности. Это всего лишь двоичный файл «Может получить доступ/может не получить доступ».

+0

+1 для большинства программ AV перехватывает API-интерфейс ReadFile/WriteFile/CreateFile. – fardjad

+0

Ваш ответ полон много неправильной информации и не затрагивает заданный вопрос. Прочитайте на КПП и почему это была такая проблема. – 2010-08-10 05:52:04

+0

Очистил «неправильные» биты. Но я не вижу, что информация настолько ошибочна, когда вы видите вопрос. Повторить то, что нужно убрать: «Вы не можете легко добавить новую модель безопасности». – Christopher

1

Правильный способ изменения работы ядра - написать драйвер фильтра, который изменяет или отслеживает информацию, передаваемую между драйверами.

, который ближе всего к законному пластыря

в отношении исправления таблиц функций ядра ... вы не должны делать это, потому что: он не будет работать в x64 edtions. так как он не будет работать в x64 edtion, вы не сможете WLK сертифицировать ваш драйвер даже для 32-битных.и если вы не можете сертифицировать свой драйвер, у вас будет неуведомленный драйвер, который очень несовместим (например, вы не можете предварительно установить на компьютер, а затем wlk сертифицировать машину).

0

В целом можно было бы увеличить количество услуг в SSDT, но это очень грязно и, в частности, поскольку Vista ближе к невозможной, чем когда-либо. Я не говорю, что - невозможно, но для этого требуется один прыжок через несколько обручей (сразу;)).

В противном случае я с DriverStack. Правильный метод состоит в том, чтобы написать драйвер фильтра для изменения существующих служб или просто написать драйвер и создать CDO (объект устройства управления), доступный из UM (или KM), и может получать IRP для предоставления услуг, которые он предназначенные для обеспечения ...

Драйверы являются механизмом для расширения ядра. И в отличие от нескольких платформ FLOSS, интерфейс к ядру в Windows довольно стабилен: o)

Боковое замечание: если компания AV не слишком дерзкая, она прибегает к драйверу фильтра. Да, это в конечном итоге также означает, что некоторые функции манипулируют, но утверждение, что AVs hook те (Win32, т. Е. UM) API ... хорошо, неверно. К сожалению, мне не удастся проголосовать за эту фактическую ошибку (потому что мне здесь не хватает «репутации»). Фильтрация будет происходить в ядре в любом случае. Обычно с помощью драйвера фильтра FS или для некоторых функций с помощью перехватчиков SSDT. SSDT содержит указатели на базовую функцию в ядре, поэтому из UM вы вызываете системный вызов по его индексу («номер системного вызова»), как на платформах unixoid.