MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Перехват API-функций в Windows NT/2000/XP

Название:Перехват API-функций в Windows NT/2000/XP
Просмотров:63
Раздел:Информатика, программирование
Ссылка:Скачать(146 KB)
Описание:Что такое «перехват API-функций». Метод 1. Перехват API непосредственной записью в код системной функции.. Метод 2. Перехват API через таблицу импорта.. Внедрение кода в чужой процесс в Windows NT.

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Перехват API-функций в Windows NT/2000/XP Тихомиров В.А.
    Системные программисты, работавшие под MS DOS, прекрасно помнят технологию перехвата системных прерываний, позволявшую брать под контроль практически все процессы, проходившие в любимой операционной системе.
    С переходом на Windows использование системных ресурсов программистами в большом объеме стало осуществляться через функции API, и у многих "сиспрогов" стал возникать вопрос: "существуют ли в Windows технологии перехватов этих системных функций?" Особый интерес это вызывает применительно к высокозащищенным ОС, выполненным на ядре NT. Данная статья подробнейшим образом, с действующими примерами покажет практическую реализацию такой технологии (предполагается, что читатель знаком с принципами системного программирования в Windows и умеет применять в своей работе Visual C++). Что такое "перехват API-функций"
    Перехват системной функции API заключается в изменении некоторого адреса в памяти процесса или некоторого кода в теле функции таким образом, чтобы при вызове этой самой API-функции управление передавалось не ей, а вашей функции, подменяющей системную. Эта функция, работая вместо системной, выполняет какие-то запланированные вами действия, и затем, в зависимости от вашего желания, либо вызывает оригинальную функцию, либо не вызывает ее вообще. Перехват функций является очень полезным средством в том случае, если вы хотите отследить, изменить или заблокировать некоторые конкретные действия приложения.
    Перехват функций чужого процесса удобнее всего осуществлять внедрением собственной DLL с функцией-двойником в адресное пространство того процесса, контроль над функциями API которого вы хотите установить. При написании двойников функций следует особое внимание обратить на соглашения о вызовах функций __cdecl и __stdcall. В __cdecl функциях подразумевается, что параметры кладутся в стек справа налево, и вызывающая функция очищает стек от аргументов. В __stdcall функциях подразумевается, что параметры кладутся в стек справа налево, но стек от аргументов очищает вызываемая функция. Кроме того, следует учитывать, что в Windows API многие функции встречается в 2-х экземплярах: ANSI и UNICODE. Первые обозначаются суффиксом A: например MessageBoxA, вторые - суффиксом W - например MessageBoxW.
    Рассмотрим два метода перехвата API функций:
    Непосредственная запись в код функции.
    Подмена адреса функции в таблице импорта.
    Метод 1. Перехват API непосредственной записью в код системной функции.
    Прием заключается в том, чтобы в начало перехватываемой функции записать команду jmp ваша_функция_двойник или эквивалентную ей. Затираемые байты желательно где-нибудь сохранить. После вызова исправленной функции приложением управление будет передано вашей функции. Она должна корректно обработать стек, то есть извлечь переданные ей параметры и произвести необходимые вам действия. Затем, если вы собираетесь вызывать оригинальную функцию, необходимо восстановить затертые байты в начале оригинальной функции. Вызвать ее, передав ей все необходимые параметры. После возврата из оригинальной функции, необходимо снова в начало кода функции записать команду перехода на вашу функцию. Вернуть управление вызвавшей программе.
    Достоинство данного метода состоит в том, что он позволяет перехватывать любые функции, а не только те, которые указаны в таблице импорта.
    Недостаток: в многопоточных приложениях может возникнуть такая ситуация, когда один поток вызвал перехваченную вами функцию, управление было передано функции-двойнику, она восстановила оригинальное начало функции, но в этот момент параллельно выполняющийся поток произвел вызов той же функции. ............




Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  



Похожие работы:

Название:Роль и место Беларуси в процессах общественно-исторического развития
Просмотров:76
Описание: Роль и место Беларуси в процессах общественно-исторического развития     СОДЕРЖАНИЕ   1. Роль и место Беларуси в процессах общественно-исторического развития 1.1 Беларусь в восточнославянском ми

Название:Анализ процессуальных прав и обязанностей лиц в гражданском судопроизводстве
Просмотров:75
Описание: Содержание Введение Глава I. Понятие о лицах, участвующих в деле 1.1 Лица, участвующие в деле, их заинтересованность 1.2 Гражданская процессуальная правоспособность и дееспособность Глава II. Стороны гражд

Название:Функции сравнительного правоведения
Просмотров:89
Описание: МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫКУРСОВАЯ РАБОТА на тему Функции сравнительного правоведения по дисциплине Сравнительное правоведениеКИЕВ 2011   СОДЕРЖАНИЕ Введение 1. Научная функц

Название:Функции государства в их многообразии и развитии
Просмотров:72
Описание: Содержание Введение Глава 1. Функции государства 1.1. Понятие и признаки функций государства 1.2 Классификация функций государства 1.3 Глобальные проблемы и функции государства 1.4. Эволюция функций госуд

Название:Процесс создания и функционирования общественных объединений
Просмотров:69
Описание: Оглавление Введение 1.  Создание общественного объединения 2.  Государственная регистрация 3.  Организационные структуры 4.  Членство 5.  Действия после регистрации 6.  Изменение учр

 
     

Вечно с вами © MaterStudiorum.ru