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





Да, очень возможно зацепиться за ядро. Я настоятельно рекомендую книги Внутреннее устройство Windows и Руткиты.
Они должны предоставить вам всю необходимую информацию.
Библиотека Microsoft Объезды позволяет вам перехватывать вызовы API от процессов и вставлять или заменять собственный код.
Обратите внимание, что для успешного выполнения такого рода действий, вероятно, потребуется несколько больше, чем ограниченный опыт работы с Win32. Как вы понимаете, это может быть очень сложная тема.
Это не так, но не ясно, что он спрашивает, возможно, драйвер ядра (исправление - неправильная терминология в мире ядра Windows) - это не то, что ему нужно, и этой библиотеки будет достаточно.
Вы не часто слышите «патчинг», но Microsoft использует термин «Kernel Patching Protection», так что это не так уж странно в мире Windows.
Разработка драйверов - задача не из легких. Антивирусное программное обеспечение требует работы с файловой системой (драйвером фильтра файловой системы), что усложняет жизнь. Было бы полезно, если бы вы попытались более подробно описать то, чего вы пытаетесь достичь.
Наиболее рекомендуемый ресурс для разработки драйверов - ЛАРН. Есть 2 связанных списка рассылки:
Список книг можно найти здесь.
Если драйвер не является вашим основным занятием (в этом случае найдите человека с опытом работы с ядром), я настоятельно рекомендую передать эту работу на аутсорсинг. В приведенных выше списках вы найдете множество консультантов.
Исходный код Windows практически недоступен :) к сожалению. Чтобы поиграть с менеджером виртуальной памяти, вы должны находиться в режиме ядра, если это вообще возможно.
Попробуйте задать этот вопрос о ntdev, вы зададите этот вопрос большинству разработчиков ядра в мире. Чтобы получить разумный ответ, вам нужно будет задать более конкретный вопрос (буду смотреть ветку, интересная тема). Если правильно понимать, что вы хотите сделать, в Windows это невозможно. По крайней мере, без серьезной работы по обратному инжинирингу, но я в основном работаю со стандартными типами драйверов, поэтому я думаю, что не знаю достаточно, чтобы сделать окончательный вывод.
Ответ на комментарий:
Я не уверен, что именно делает Entercept (не нашел ничего в описании продукта, предполагающего, что они проигрывают память или разрешения процессов). Так что определение конечной цели с помощью конкретной технологии, как ее достичь, могло бы быть более продуктивным способом.
Ответ на комментарий 2:
1.1. Что такое LIDS?
LIDS - это усовершенствование ядра Linux, написанное Се Хуагангом и Филиппом Бионди. Он реализует несколько функций безопасности, которых нет в ядре Linux.
Некоторые из них включают:
1. Обязательный контроль доступа (MAC) - не знаю, что на самом деле имеется в виду.
2. Детектор сканирования портов - это определенно выполнимо, посмотрите на сайте это.
3. Защита кучи - драйвер фильтра файловой системы, описанный выше.
4. Защита процесса - можно в драйвере создание процесса перехвата, поищите в архивах ntdev, там много обсуждения об этом.
Привет Илья, я, конечно, передам работу на аутсорсинг, но, во-первых, я хочу установить, что это возможно, а во-вторых, знаю, какой тип программистов нанять. Я предполагаю, что то, о чем я спрашиваю, должно быть возможно, потому что такие продукты, как Entercept, справляются с этим?
Entercept - это перехват системного вызова для окон, который они должны каким-то образом подключить к ядру. Конкретной целью того, что меня интересует, может быть, например, портирование чего-то вроде LIDS или его реализации для Windows. такое возможно, возможно, с исправлением ядра?
Просто примечание: вы не патчите ядро, вы пишете расширение - драйвер режима ядра
Для MAC см. Здесь en.wikipedia.org/wiki/Mandatory_access_control Меня больше интересует общий вид функциональности, а не какие-либо конкретные функции, я хочу сохранить возможность абстрактной. Крышки могут быть модулем, но все же требуется исправление ядра AFAIK
Что значит удача? Согласно этому en.wikipedia.org/wiki/Kernel_Patch_Protection это случается достаточно часто, но я хотел бы знать, насколько это возможно.
Я имел в виду то, что мне грустно, без сарказма, просто пожелал тебе удачи в твоей задаче.
Вы говорите о исправлении ядра, не предоставляя разумного объяснения того, почему вы хотите это сделать и почему вы думаете, что официальный API не приведет вас туда, куда вы хотите. Как следствие, мы должны предположить, что вы планируете написать какое-то вредоносное ПО - не ждите, что кто-нибудь в stackoverflow поможет вам в этом!
Примечание: это не поможет с исправлением ядра, только пользовательского пространства.