Программирование ядра NT - PullRequest
0 голосов
/ 07 октября 2008

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

J

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

Ответы [ 4 ]

2 голосов
/ 07 октября 2008

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

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

2 голосов
/ 07 октября 2008

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

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

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

Список книг можно найти здесь .

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

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

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

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

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

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

1,1. Что такое LIDS?

LIDS - это усовершенствование ядра Linux, написанное Се Хуаганом и Филиппом Бионди. Он реализует несколько функций безопасности, которых изначально нет в ядре Linux. Вот некоторые из них:
1. Обязательный контроль доступа (MAC) - не знаю, что на самом деле означает.
2. Детектор сканирования портов - это, безусловно, выполнимый вид на этом сайте.
3. Защита кучи - драйвер фильтра файловой системы, описанный выше.
4. Защита процесса - вы можете подключить создание процесса в своем драйвере, посмотрите в архивах ntdev, есть много обсуждений по этому поводу

2 голосов
/ 07 октября 2008

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

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

0 голосов
/ 11 октября 2008

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

...