Программирование ядра NT

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

J

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
2 542
4

Ответы 4

Да, очень возможно зацепиться за ядро. Я настоятельно рекомендую книги Внутреннее устройство Windows и Руткиты.

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

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

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

Примечание: это не поможет с исправлением ядра, только пользовательского пространства.

Serafina Brocious 07.10.2008 13:59

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

Ilya 07.10.2008 14:27

Вы не часто слышите «патчинг», но Microsoft использует термин «Kernel Patching Protection», так что это не так уж странно в мире Windows.

BobbyShaftoe 31.12.2008 06:14

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

Наиболее рекомендуемый ресурс для разработки драйверов - ЛАРН. Есть 2 связанных списка рассылки:

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

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

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

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

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

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

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

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

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

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

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

Sonny Ordell 07.10.2008 14:52

Entercept - это перехват системного вызова для окон, который они должны каким-то образом подключить к ядру. Конкретной целью того, что меня интересует, может быть, например, портирование чего-то вроде LIDS или его реализации для Windows. такое возможно, возможно, с исправлением ядра?

Sonny Ordell 07.10.2008 15:24

Просто примечание: вы не патчите ядро, вы пишете расширение - драйвер режима ядра

Ilya 07.10.2008 16:24

Для MAC см. Здесь en.wikipedia.org/wiki/Mandatory_access_control Меня больше интересует общий вид функциональности, а не какие-либо конкретные функции, я хочу сохранить возможность абстрактной. Крышки могут быть модулем, но все же требуется исправление ядра AFAIK

Sonny Ordell 07.10.2008 16:25

Что значит удача? Согласно этому en.wikipedia.org/wiki/Kernel_Patch_Protection это случается достаточно часто, но я хотел бы знать, насколько это возможно.

Sonny Ordell 07.10.2008 16:57

Я имел в виду то, что мне грустно, без сарказма, просто пожелал тебе удачи в твоей задаче.

Ilya 17.10.2008 00:32

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

Другие вопросы по теме