Windows XP: моя программа работает в режиме ядра? - PullRequest
2 голосов
/ 12 января 2011

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

Я бы хотелсоздать практический пример того, как неисправный драйвер устройства, работающий в режиме ядра, может сделать с системой, например, испортить память, используемую для критических процессов ОС.

  • Как выполнить код вРежим ядра вместо режима пользователя, напрямую?
  • Нужно ли мне писать фиктивный драйвер устройства и устанавливать его для этого?

  • Где я могу прочитатьподробнее о ядре и пользовательском режиме в Windows?

Я знаю об этом и буду делать все эксперименты на виртуальной машине под управлением Windows XP только

Ответы [ 3 ]

3 голосов
/ 12 февраля 2011

Книга "Windows Internals" довольно поверхностна по обсуждаемой теме.

Прежде всего я должен отметить, что любая программа также работает в режиме ядра (KM).Это связано с тем, что - в отличие от unixoid систем - для системных вызовов вызывающий поток переходит в KM, где само ядро ​​или один из драйверов обслуживает запрос, а затем возвращается в пользовательский режим (UM).

Первым шагом для начала было бы загрузить последнюю версию Windows Driver Kit (WDK) и начать читать документацию.Если вам нужна более понятная книга, выберите одну из них:

  1. Разработка драйвера устройства для Windows NT - хотя это старое название, многие основные принципы все еще применимы.
  2. Программирование WindowsМодель драйвера (автор Oney) - в частности, программирование WDM, также охватывает основы, содержит некоторые ошибки (как и большинство книг).
  3. Недокументированные секреты Windows 2000 (автор Шрайбер) - содержит много информации о всевозможных внутренностяхболее технический уровень, чем книга, упомянутая ранее.
  4. Недокументированная Windows NT - содержит более общую часть о внутреннем оборудовании на техническом уровне, за которой следует ссылка на некоторые собственные функции API.
  5. Windows NT /2000 Native API - классика, но это скорее справочник.Тем не менее, в нем есть несколько драгоценных камней (и примеров).

Поскольку вы хотите использовать Windows XP, многие методы, описанные на rootkit.com (даже несколько лет назад), должны работать.У них также есть много образцов.

И, как вы заметили по названию веб-сайта, на который ссылаются, вы на самом деле находитесь в том, что я бы назвал серой областью с этим вопросом;)

0 голосов
/ 13 января 2011

Вам понадобится хорошее понимание внутренних компонентов Windows:

http://technet.microsoft.com/en-us/sysinternals

и да, у них есть книга: Windows Internals

http://technet.microsoft.com/en-us/sysinternals/bb963901

http://www.amazon.com/Windows%C2%AE-Internals-Including-Windows-PRO-Developer/dp/0735625301

В основном на все ваши вопросы даны ответы в этой книге (и даже с примерами и практическими занятиями).

0 голосов
/ 12 января 2011

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

...