2008-10-07 8 views
0

Я хотел бы знать, с чего начать, или как это возможно, подключить или исправить ядро ​​Windows (XP и выше). Меня особенно интересует программное обеспечение, такое как McAfee Entercept или некоторые антивирусные сканеры, которые исправляют ядро. Я хотел бы знать, насколько возможно для запуска создавать программное обеспечение, которое добавлено в функциональность к ядру (я знаю о KPP и что его можно обойти) и любые исправления этого. Я не смог найти простое описание и имел ограниченный опыт работы с Win32. Любая помощь очень ценится,Программирование ядра NT

J

Дальнейшее уточнение: Я не после того, как водитель, как таковой, и было бы интересно, если это технически возможно портировать что-то вроде PaX к окнам, например. Это плохой пример, поскольку окна уже имеют реализацию, но меня интересует, можно ли портировать аналогичные технологии без доступа к источнику NT.

ответ

2

Да, в ядро ​​можно подключиться. Я настоятельно рекомендую книги Windows Internals и Rootkits.

Они должны предоставить вам всю необходимую информацию.

2

Библиотека Microsoft Detours позволяет перехватывать вызовы API из процессов и вставлять или заменять собственный код.

Обратите внимание, что успешное выполнение такого рода действий, скорее всего, потребует более чем ограниченного опыта Win32. Как вы можете себе представить, это может быть очень сложная тема.

+0

Примечание. Это не поможет с исправлением ядра, а только из пользовательского пространства. – 2008-10-07 09:59:10

+0

Не будет ясно, что он спрашивает, может ли быть драйвер ядра (исправление не является правильной терминологией в мире ядра Windows) не то, что ему нужно, и этой библиотеки будет достаточно. – Ilya 2008-10-07 10:27:30

2

Разработка драйверов - непростая задача. Антивирусное программное обеспечение требует обработки файловой системы (драйвера фильтра файловой системы), что делает жизнь более сложной. Было бы полезно, если вы попытаетесь описать, что вы пытаетесь достичь более детально.

Наиболее рекомендуемые ресурсы для разработки драйверов - OSR. Существует 2 связанных списков рассылки:

  1. ntdev Для развития общего драйвера
  2. ntfsd Для разработки файловой системы привода

книги список можно найти here.

Если вы не работаете с вашим основным занятием (в этом случае найдите человека с опытом работы с ядром), я бы настоятельно предложил аутсорсинг этой работы. В списках выше вы можете найти множество консультантов.

К источнику Windows в основном недоступно :) К сожалению. Чтобы играть с диспетчером виртуальной памяти, вы должны быть в режиме ядра, если это вообще возможно.

Попробуйте задать этот вопрос на ntdev, вы спросите у большинства разработчиков ядра в мире. Вам нужно будет задать более конкретный вопрос, чтобы получить разумный ответ (я буду смотреть тему, интересную тему).
Если вы правильно понимаете, что именно вы хотите сделать, это невозможно в Windows. По крайней мере, не без серьезных обратных инженерных работ, но я в основном работаю со стандартными типами драйверов, поэтому я думаю, что не знаю достаточно, чтобы сделать окончательный вывод.

Ответ на комментарий:

Я не уверен, что именно Entercept делают (не нашел ничего в описании товара предполагая, что они играют в памяти или обрабатывает разрешения). Таким образом, определение конечной цели довольно конкретной технологии, как добиться этого, может быть более продуктивным способом.

Ответ на комментарий 2:

1.1. Что такое LIDS?

LIDS - это усовершенствование ядра Linux, написанное Xie Huagang и Philippe Biondi. Он реализует несколько функций безопасности, которые не находятся в ядре Linux изначально. Некоторые из них включают в себя:
1. Обязательный контроль доступа (MAC). Не знаю, что действительно означает.
2. Детектор сканирования порта - это определенно выполнимый вид на сайте this.
3. Защита кучи - драйвер фильтра файловой системы, описанный выше.
4. Защита процесса - вы можете hook process creation в своем драйвере, посмотрите в архивах ntdev, есть много discussions об этом.

-1

Вы говорите об исправлении ядра, не давая разумного объяснения, почему вы хотите это сделать, и почему вы считаете, что официальный API не получит вас туда, куда вы хотите получить. Как следствие, мы должны предположить, что вы планируете писать какую-то вредоносную программу - не ожидайте, что кто-нибудь из stackoverflow поможет вам в этом!