Есть вопрос?
Зайди на форум

Поиск:

Denix: русификация Ubuntu и кодеки :: RSS:: Скачать книги Колисниченко в PDF

Англо-русский словарь компьютерных терминов (Д. Колисниченко)

A  B  C  D  E  F  G  H  I  K  L  M  N  O  P  Q  R  S  T  V  W  X  Y  Z 

укрпочта отслеживание посылок перевод денег график отключения света в Кировограде график отключения счета в Киеве график отключения света в Одессе (zip)

Книга Д. Колисниченко Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.

15.2. IRP и стек ввода/вывода

Нужно отметить, что IRP - это частично документированная структура. Что-то подробно описано в официальной документации от Microsoft, что-то - не очень, а что-то - вообще не описано. Вы должны знать, что в пределах ядра Windows IRP распределяется диспетчером ввода/вывода (I/O Manager). Именно на нем лежит вся ответственность по IRP. Сами же IRP используются для передачи служебной информации между драйверами.

Многоуровневые драйверы одного устройства формируют цепочку. При осуществлении запроса ввода/вывода к многоуровневому драйверу формируется пакет IRP, который будет передан всем драйверам цепочки. Первым получает IRP "наивысший" драйвер, поскольку он первый в цепочке. Последний драйвер в цепочке выполняет низкоуровневые функции. Он получает IRP последним.

Создает IRP диспетчер ввода/вывода. Во время создания IRP он определяет количество драйверов в цепочке и для каждого драйвера добавляет дополнительное пространство в IRP. Это пространство называется IO_STACK_LOCATION (стек ввода/вывода). Отсюда следует, что размер IRP зависит от количества драйверов и не является постоянной величиной. Структуру IRP можно представить так:

Рис. 15.4. Структура IRP

Что же хранится в IRP-заголовке? Думаю, несложно догадаться. Во-первых, текущий индекс массива IO_STACK_LOCATION. Во-вторых, указатель на текущий элемент IO_STACK_LOCATION. Нужно отметить, что нумерация элементов массива  IO_STACK_LOCATION начинается с 1, а нулевого элемента вообще нет.

Предположим, что в нашем IRP есть три элемента IO_STACK_LOCATION, то есть в нашей цепочке всего три драйвера. При создании IRP индекс массива будет равен 3, а указатель будет указывать на третий элемент массива - на IO_STACK_LOCATION для наивысшего драйвера в цепочке, он же является первым драйвером. Вы, наверное, уже заметили, что тут все наоборот: драйвер является первым в цепочке, а его элемент в массива - последним. Но это сделано специально, сейчас вы поймете почему.

При передаче IRP драйверу низшего уровня драйвер высшего уровня вызывает функцию IoCallDriver. Функция  IoCallDriver первым делом уменьшает индекс массива стека ввода/вывода. Поэтому драйвер низшего уровня получает IRP с уже установленным индексом - ему ничего не нужно делать, просто использовать элемент с указанным в заголовке IRP индексом.

Когда последний драйвер в цепочке получит IRP, индекс массива будет установлен в 1. Если установить его в 0, система разрушиться.

Драйвер-фильтр, каким является наш сниффер клавиатуры, должен поддерживать основные функции драйверов. Предположим, что мы пишем простенький драйвер-фильтр, который ничего не делает, а просто передает все IRP на низший уровень. Для этого используется следующий код:

for (int i=0; I < IRP_MJ_MAXIMUM_FUNCTIONS; i++)

 pDriver->MajorFunction[i] = my_pass_thru;

my_pass_thru - это сквозная функция. Выглядит она следующим образом:

NTSTATUS my_pass_thru (PDEVICE_OBJECT CurrentDeviceObject, PIRP Irp)

{

IoSkipCurrentIrpStackLocation(Irp);

return IoCallDriver(gNextDevice, Irp);

}

IoSkipCurrentIrpStack позволяет передать IRP на низший уровень, не изменяя указателя текущего элемента массива IO_STAKC_LOCATION.

Примечание. На самом деле IoSkipCurrentIrpStackLocation увеличивает на 1 указатель текущего элемента, чтобы функция IoCallDriver смогла уменьшить его на 1 и получить тот самый элемент, который был текущим при вызове IoSkipCurrentIrpStackLocation

Помните: IoSkipCurrentIrpStackLocation объявлена как макрос, потому в циклах, в операторах условного перехода вы обязательно должны использовать фигурные скобки:

// работает

if (условие)

{

IoSkipCurrentIrpStackLocation();

}

// не работает

if (условие) IoSkipCurrentIrpStackLocation();

На главную

Мне нравится!

Сегодня: 18/01

Поздравлять сегодня некого

Последние посты форума

Интересная картинка

Samsung Galaxy J2 Prime (SM-G532F)

дааа

Обучение PHP-программированию

Новый дизайн сайта

Возвращение на динамическую страницу сайта

С Новым Годом!

Бесплатный хостинг, SSL сертификат, не ограниченно

капец погода в ноябре у нас

Посоветуйте хостинг

флэшмобы

вот люди где живут... экстрим

авто-дилеры

Программы для Linux

книга Командная строка Linux и автоматизация рутинных задач

Совет:

Книги Д. Колисниченко:

Linux

Linux. От новичка к профессионалу. 2-е изд.Linux. От новичка к профессионалу. 2-е изд.
Даны ответы на все вопросы, возникающие при работе с Linux: от установки и настройки этой ОС до настройки сервера на базе Linux. Материал книги максимально охватывает все сферы применения Linux                                                                                                            

Самоучитель Linux изд. 1-2 (БХВ)Самоучитель Linux изд. 1-2 (БХВ)
Самоучитель ориентирован на домашнего и офисного непрофессионального пользователя и поможет ему самостоятельно настроить и оптимизировать операционную систему Linux. В книге есть ответы практически на все вопросы, возникающие при ежедневной работе в                                                   

Ubuntu Linux. Краткое руководство пользователяUbuntu Linux. Краткое руководство пользователя
Книга ориентирована на начинающего пользователя Ubuntu Linux. Книга устарела, вместо нее издана Ubuntu 10. Краткое руководство пользователя (тоже издательство БХВ)                                                                                                                                          

PHP

Современный сайт на РНР и JavaScript (+CD)Современный сайт на РНР и JavaScript (+CD)
Эта книга о PHP и не только. С помощью PHP вы легко создадите сайт любого масштаба — от небольшой личной странички до сайта уровня предприятия со сложной панелью управления.                                                                                                                                

PHP 5/6 и MySQL 6. Разработка Web-приложенийPHP 5/6 и MySQL 6. Разработка Web-приложений
На практических примерах описана разработка Web-приложений на языке PHP версий 5 и 6. Лучшая моя книга по PHP, ищите в продаже 3-е издание! Издательство БХВ- Петербург                                                                                                                                      

Самоучитель PHP 5. Книга + CDСамоучитель PHP 5. Книга + CD
Долгожданное новое издание PHP5 с CD, на котором вы найдете листинги из книги и дополнительное программное обеспечение (Apache, PHP, MySQL, редакторы кода). Книга не поддерживается, устарела                                                                                                               

Интернет/CMS

Движок для вашего сайта. CMS Joomla!, Slaed, PHP-NukeДвижок для вашего сайта. CMS Joomla!, Slaed, PHP-Nuke
Книга ориентирована как на обычных пользователей Интернета, которым нужно в кратчайшие сроки создать свой сайт, так и на разработчиков, которые заинтересованы в построении собственной системы управления сайтом.                                                                                           

Joomla 1.5.15/1.6.0. Руководство пользователяJoomla 1.5.15/1.6.0. Руководство пользователя
Эта книга — простое и эффективное учебное пособие по освоению и использованию системы управления контентом веб-сайта Joomla 1.5.15/1.6. Отличное руководство для начинающих                                                                                                                                  

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

Компьютер/Windows

Microsoft Windows 8. Первое знакомствоMicrosoft Windows 8. Первое знакомство
Описаны основные нововведения в Windows 8. Рассмотрена установка системы как на физический компьютер, так и на виртуальный (VMware, VirtualBox).                                                                                                                                                            

Нетбук для экономныхНетбук для экономных
Книга предназначена в первую очередь для экономных пользователей. Упор делается на выбор недорогого нетбука и бесплатных программ.                                                                                                                                                                           

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

Сети

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

Беспроводная сеть дома и в офисеБеспроводная сеть дома и в офисе
Книга поможет начинающему администратору домашней или офисной сети в кратчайшие сроки развернуть, настроить или модернизировать беспроводную сеть. Отличный выбор для построения сети SOHO                                                                                                                   

Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.
Книга о настройке сети в Windows (98,NT,XP) и Linux. Является превосходным практическим руководством по созданию и обслуживанию компьютерных сетей.                                                                                                                                                          

Безопасность

Анонимность и безопасность в Интернете. От Анонимность и безопасность в Интернете. От "чайника" к пользователю
Простым и понятным языком рассказано, как скрыть свое местонахождение и IP-адрес, используя анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз                                                                                          

Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.
-                                                                                                                                                                                                                                                                                                            

Автомобили

Что делать, чтобы не надули в автосервисе. Советы и рекомендацииЧто делать, чтобы не надули в автосервисе. Советы и рекомендации
Вы недавно приобрели автомобиль или уже имеете водительский стаж, но при этом особо не вникаете в устройство автомобиля?                                                                                                                                                                                     

Что делать, чтобы не надули в автосервисе. Советует и рекомендует президент клуба BMWЧто делать, чтобы не надули в автосервисе. Советует и рекомендует президент клуба BMW
В этой книге речь пойдет о том, как правильно выбрать СТО; о преимуществах и недостатках гарантии; о том, как не дать в автосалоне навязать себе дополнительную комплектацию                                                                                                                                

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

Переводные книги

Переводные книгиПереводные книги
Данные книги были переведены мною на русский язык (с английского и чешского). Надеюсь качество перевода вам понравится!                                                                                                                                                                                      

Android

Безопасный Android: защищаем свои деньги и данные от кражиБезопасный Android: защищаем свои деньги и данные от кражи
Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика                                                                                             

Планшет и смартфон на базе Android для ваших родителей, 2-е изд.Планшет и смартфон на базе Android для ваших родителей, 2-е изд.
Книга знакомит читателя с мобильными устройствами на базе Android. Она написана простым и понятным языком для людей среднего и старшего возраста                                                                                                                                                             

Планшет и смартфон на базе Android для ваших родителейПланшет и смартфон на базе Android для ваших родителей
Книга рассчитана на людей среднего и старшего возраста. Она поможет освоить современный «карманный компьютер» на базе Android, в котором все новое и "не так, как в Windows". Доступным языком описывается, как включить и выключить смартфон и т.д.                                                         

Статьи

Rambler's Top100