2011-01-12 3 views
2

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

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

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

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

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

ответ

0

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

0

Вы потребуется хорошее понимание внутренних внутренних компонентов 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

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

3

Книга «Windows Internals» довольно мелкая по теме на вопрос.

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

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

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

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

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

Смежные вопросы