У некоторых вирмэйкеров, при переходе с абсолютно незащищённых потомков старичка DOS’а (все Win9x & ME) на WinNT/2000/XP/2003, может сложиться впечатление, что порча оборудования, чрез прямой доступ к портам отошла в прошлое. Даже так хороший вирь, как CIH, оказался бессилен на линейке NT… Но всё же существуют способы и здесь добраться до I/O портов! Этим сейчас и займёмся. Для начала немного теории:
Как известно, в NT можно получить доступ к портам, через драйвер. Это кажется довольно сложным решением, из-за того что Microsoft крайне неохотно документирует низкоуровневые API, да и отладка драйверов намного сложнее дебаггинга прикладных программ. Это связано с тем, что драйвера работают в нулевом кольце. Вообще-то винда поддерживает только два уровня привилегий – 3-ий и 0-ой. В ring3 работают все пользовательские программы. Это самое не привелигированное кольцо. Ошибка в программе режима пользователя приводит к её зарытию. Это повышает надёжность самой ОС. Линейка NT изначально разработана, как серверная, и неправильная работа любой программы не должна сказаться на работе всей системы. Любая же ошибка в драйвере ведёт к появлению на экране (всеми любимого :)) Blue Screen of Death. Это связано с тем, драйвер работает на равне с самой ОС. Считается, что код драйвера (как доверительной программы) должен быть хорошо проработан и не содержать ошибок. Самые распространённые на данный момент драйверы это WDM (Windows Driver Model). Они представляют собой обычные PE файлы, только загружаемые по 10000h и не использующие WinApi третьего кольца.
Microsoft разделяет все драйверы на следующие категории:
Kernel-Mode Drivers – это драйверы предоставляющие работу с I/O портами, USB, IEEE 1394, PCMCIA картами, SCSI miniports и т.д. Т.е. это в основном работа с периферийными устройствами.
Kernel Streaming Drivers включают в себя драйверы для различных мультимедийных устройств. (sound cards, DVD players, digital cameras, and TV tuner cards)
Network Driver – это различные сетевые драйверы. Часто используются для реализации новых сетевых протоколов.
Graphics Driver – драйверы для устройств вывода. (принтеры, мониторы и т.п.)
Страницы: 1 2
Обсуждене
Отзывов нет на «Доступ к IO»
Ваш отзыв