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

Поиск:

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

11.4. Перезапись встроенных функций

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

Общий алгоритм выглядит так:

Сколько же байтов оригинальной функции можно переписать? Проще всего переписать первые пять байтов функции. Тому есть две причины. Первая: первые пять байтов одинаковы для всех функций Win32 API - это преамбула. Фактически, эти байты даже можно и не сохранять - их можно просто переписать, затем выполнить свой код, после него выполнить эти инструкции - ведь их все знают. Тут мы существенно упрощаем схему перезаписи - ведь нам не нужен безусловный переход на сохраненные инструкции. Выполняем инструкции, а затем переходим на исходную функцию. Ее выполнение будет нормально продолжено - ведь преамбула выполнена.

Но тут есть одно но: преамбула функций различна для различных версий Windows. Поэтому при перезаписи преамбулы этот факт нужно учитывать. Если версия Windows младше XP SP2, то преамбула выглядит так:

Инструкции Ассемблера Шестнадцатеричное представление

push ebp			55
mov ebp, esp		8bec

Если же установлена Windows XP SP2 или более поздняя версия, то преамбула выглядит иначе:

Инструкции Ассемблера Шестнадцатеричное представление

mov edi, edi		8bff
push	ebp			55
mov ebp, esp		8bec

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

Если вы заметили, то в случае с Windows XP SP1 (и более младшими версиями) преамбула занимает 3 байта (55 8b ec). Получается, что мы перезаписываем преамбулу и два байта какой-то другой инструкции. Это нужно учитывать: ваша функция, выполняющая перезапись, должна быть в состоянии выполнить дизассемблирование начала функции и определить длину инструкций.

В Windows XP SP2 наша работа значительно упрощена. Microsoft, нужно заметить, помогла в этом. Преамбула занимает 5 байтов - как раз столько, сколько нужно. Спрашивается, неужели Microsoft не предусмотрела, в каких целях это может использоваться? Как раз, наоборот, для этих целей она это и сделала. В SP2 появилась новая функция "горячего патча", позволяющая вставлять новый код без перезагрузки системы. Мы сделали что-то незаконное? Нет, мы просто воспользовались новой возможностью от Microsoft.

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

Теперь немного терминологии - без нее никак. Байты кода, которые вы перезаписываете и которые нужно где-то сохранить, а потом - выполнить, называются трамплином (trampoline). Безусловный переход, который вы помещаете в целевую функцию, называется "обходом". А теперь рассмотрим общую схему трамплинов и обходов:

Рис. 11.3. Перезапись встроенных функций

Исходная функция - это функция пользовательского приложения, вызывающая целевую API-функцию. Глядя на рисунок, все становится на свои места: исходная функция вызывает целевую, но поскольку мы поместили в ее начало "обход" мы переходим на функцию обхода. Данная функция выполняет какие-то действия и передает управление функции трамплина. Основная ее задача - это подготовить трамплин, то есть выполнить ту последовательность инструкций, которая была перезаписана обходом. После этого функция трамплина передает управление целевой функции, которая возвращает результат функции обхода. Последняя модифицирует результат (если это нужно) и отправляет его исходной функции.

Примечание. Дополнительную информацию об изменении пути исполнения и других модификациях, выполняемых руткитами, вы сможете найти в статье "Windows под прицелом", опубликованной на сайте http://www.securitylab.ru

На главную

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

Сегодня: 17/01

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

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

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

Samsung Galaxy J2 Prime (SM-G532F)

дааа

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

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

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

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

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

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

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

флэшмобы

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

авто-дилеры

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

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

Совет:

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

Linux

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

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

Самоучитель системного администратора LinuxСамоучитель системного администратора Linux
Описаны основы сетевого взаимодействия, планирование и монтаж сети (Ethernet и Wi-Fi), настройка сети и маршрутизации без конфигураторов. Даны примеры настройки различных типов серверов: Web, FTP, DNS, DHCP, почтового сервера, сервера баз данных. Рас                                                   

PHP

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

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

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

Интернет/CMS

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

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

Самоучитель Joomla!Самоучитель Joomla!
Книга ориентирована как на обычных пользователей Интернета, которым нужно в кратчайшие сроки построить свой сайт, так и на разработчиков, которые заинтересованы в создании собственных расширений и шаблонов для популярной системы управления контентом                                                   

Компьютер/Windows

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

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

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

Сети

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

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

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

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

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

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

Автомобили

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

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

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

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

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

Android

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

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

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

Статьи

Rambler's Top100