Защити свой компьютер на 100% от вирусов и хакеров - [58]
♦ работающие в режиме ядра (kernel-mode).
User-mode-категория руткитов основана на перехвате функций библиотек пользовательского режима, kernel-mode – на установке в систему драйвера, осуществляющего перехват функций уровня ядра.
В настоящее время можно выделить следующие методы перехвата API-функций в режиме пользователя (user mode):
♦ модификация таблицы импорта;
♦ модификация машинного кода прикладной программы;
♦ модификация программного кода API-функции;
♦ перехват функций LoadLibrary и GetProcAddress.
Модификация таблицы импорта. Пожалуй, именно эта методика сокрытия претендует на звание классической. Технология такой маскировки заключается в следующем: rootkit находит в памяти таблицу импорта исполняемой программы и корректирует адреса интересующих его функций на адреса своих перехватчиков. Кажется, что все достаточно просто.
В момент вызова API-функции программа считывает ее адрес из таблицы импорта и передает по этому адресу управление. Поиск таблицы импорта в памяти несложен, поскольку для этого уже известны специализированные API-функции, позволяющие работать с образом программы в памяти.
Данная методика достаточно универсальна, к тому же она проста в реализации, но у нее есть существенный недостаток – при таком механизме перехватываются только статически импортируемые функции.
Модификация машинного кода прикладной программы. Как следует из названия, суть метода заключается в модификации машинного кода, отвечающего в прикладной программе за вызов той или иной API-функции. Реализация методики достаточно сложна, обусловлено это богатым разнообразием языков программирования и версий компиляторов, к тому же и сама реализация вызовов API-функций может быть различна.
Модификация программного кода API-функции. Методика заключается в том, что rootkit должен найти в памяти машинный код интересующих его API-функций и модифицировать его. При этом вмешательство в машинный код перехватываемых функций минимально. В начале функции обычно размещают две-три машинные команды, передающие управление основной функции-перехватчику. Основным условием такой методики является сохранение исходного машинного кода для каждой модифицированной им функции.
Перехват функций LoadLibrary и GetProcAddress. Перехват этих функций чаще всего выполняется путем модификации таблицы импорта: если перехватить функцию GetProcAddress, то при запросе адреса можно выдавать программе не реальные адреса интересующих ее функций, а адреса своих перехватчиков. При вызове GetProcAddress она получает адрес и выполняет вызов функции.
Перехват функций в режиме ядра (kernel mode). Чтобы понять суть метода, будет полезным рассмотреть принципы взаимодействия библиотек user-mode и kernel-mode.
Взаимодействие с ядром осуществляется через ntdll.dll, большинство функций которой являются посредниками при обращении к ядру через прерывание INT 2Eh. Конечное обращение к функциям ядра основано на структуре KeServiceDescrip-torTable (или сокращенно SDT), расположенной в ntoskrnl.exe. SDT, – это таблица, содержащая адреса точек входа сервисов ядра NT.
Упрощенно можно сказать, что для перехвата функций необходимо написать драйвер, который произведет модификацию таблицы SDT. Перед модификацией драйверу необходимо сохранить адреса перехватываемых функций и записать в таблицу SDT адреса своих обработчиков. Следует отметить, что такой перехват может быть реализован не только в руткитах. Так, существует достаточное количество полезных программ "мирного" назначения, перехватывающих функции при помощи правки SDT (RegMon от SysInternals или программа Process Guard).
Описанный выше метод перехвата можно считать наиболее простым. Существуют и другие подобные способы перехвата, к примеру создание драйвера-фильтра. Драйвер-фильтр может с успехом как решать задачи мониторинга (например, утилита FileMon), так и использоваться для активного внедрения в работу системы.
В частности, драйвер-фильтр может применяться для маскировки файлов и папок на диске. Принцип работы такого драйвера основан на манипуляциях с пакетами запроса ввода-вывода (IRP).
«Protected Mode – там, где тепло и сухо…»
Почему бы не создать вирус, работающий в защищенном режиме процессора? Действительно, обнаружить такой вирус антивирусной программе будет, мягко говоря, ну очень трудно, если не невозможно.
В качестве горячего примера, реализующего работу в защищенном режиме, уместно привести файловый вирус PM.Wanderer. Это резидентный полиморфный вирус, работающий в защищенном режиме процессоров i386-Pentium. Для своей работы вирус активно использует документированный интерфейс VCPI (Virtual Control Program Interface) драйвера расширенной памяти EMS (EMM386).
При запуске инфицированной программы вирус пытается "узнать", установлен ли в системе EMS-драйвер. Если вышеуказанного драйвера в системе нет, то вирус отдает управление программе-вирусоносителю, завершая при этом свою активность.
Если же драйвер есть, то вирус выполняет последовательный ряд подготовительных действий для выделения памяти под свое тело и переключения процессора в защищенный режим работы с наивысшим уровнем привилегий.
Книг о работе в Интернете для начинающих очень много. Немало книг по интернет-технологиям было выпущено и для программистов-профессионалов. Но есть ли книги про Интернет, которые были бы интересны пользователю со средним уровнем подготовки? Таких изданий на русском языке почти нет. Данная книга призвана восполнить этот пробел. В ней собраны сотни неочевидных трюков и хитрых приемов для работы в Интернете, описаны десятки полезнейших программ, даны тысячи важных советов и рекомендаций. Диапазон рассматриваемых в книге вопросов очень широк.
Сегодня книжный рынок предлагает огромный выбор литературы о работе в Интернете – как для начинающих пользователей, так и для профессионалов. Но есть ли книги об Интернете, которые были бы интересны пользователю со средним уровнем подготовки? Таких изданий на русском языке почти нет. Данная книга призвана восполнить этот пробел. В ней собраны сотни неочевидных трюков и хитрых приемов для работы в Интернете, описаны десятки полезнейших программ, даны множество важных советов и рекомендаций.Диапазон рассматриваемых авторами вопросов очень широк – это и оптимизация подключения, и расширение возможности браузеров, и секреты эффективного поиска, и вопросы безопасности… Можете не сомневаться: освоив эту книгу, вы будете проводить время в Интернете куда более эффективно и интересно.
Вы хотите создать собственный сайт на просторах Интернета? Причем желательно, чтобы он был красивым, удобным и «неглючным»? Казалось бы, чего проще: существует столько программ – конструкторов сайтов. Однако чтобы создать действительно профессиональный сайт, подобных утилит недостаточно. Вам потребуется знание языков программирования HTML и XHTML, а также каскадных таблиц стилей CSS. И в этом случае книга, которую вы держите в руках, – именно то, что вам необходимо. С ее помощью вы научитесь создавать красиво оформленные, быстрые и профессиональные сайты.
Если вы только приступили к освоению азов компьютерных технологий, если вы пока еще задумываетесь, прежде чем нажать какую-либо клавишу на клавиатуре, если вы поминутно опасаетесь забыть, как запустить нужную вам программу, как отредактировать текстовый документ, как найти потерявшийся файл, – эта книга для вас. Прочитав ее, вы освоите работу в операционной системе Windows Vista, с программами из пакета Microsoft Office 2007, а также научитесь преодолевать сбои в работе вашего компьютера.
Из вашего компьютера валит сизый дым? Windows не грузится, и вы видите лишь черный экран? Или же Windows загружается, но потом экран становится синим и на нем появляются непонятные символы? Из системного блока раздается пронзительный писк? Ваши любимые игры перестали запускаться, а антивирус уже не помогает? Не паникуйте и не спешите вызывать мастера! В большинстве случаев сбои компьютера можно «излечить» самостоятельно. Как — научит эта книга. В ней предельно просто рассказывается о наиболее часто встречающихся поломках и ошибках ПК.
В книге изложены методы восстановления данных с различных носителей информации – жестких дисков, массивов RAID, CD, DVD, карт флэш-памяти, карт фотоаппаратов и мобильных телефонов. Ремонт поврежденного оборудования рассматривается в издании только как один из аспектов всего процесса извлечения данных. Основная тема – извлечение данных, поврежденных из-за физических или логических нарушений в работе компьютерной системы либо неверных действий пользователя. В книге рассматривается восстановление случайно удаленных файлов, извлечение ценной информации с поломанных жестких дисков; описываются программы и методика восстановления данных с поврежденных массивов RAID, что критически важно для работы корпоративных компьютерных систем.Книга не требует специальной подготовки читателя: простые пошаговые процедуры восстановления данных предваряются описанием принципов их хранения на различных носителях.