Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Импорт в PE-файлах



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

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

Name – имя внешней dll, причём имя указывается не в таблице, а указатель на RVA, содержащей имя внешней dll. Имя представляет строку символов, заканчивающихся 0.

TimeDataStamp – отметка о времени и дате создания этой dll. Перед загрузкой в этом поле 0. После загрузки записывается конкретная дата и время создания.

Остальные два поля используются для определения функций данной dll, которые используются ехе файлами.

Characteristics – представляет RVA, указывающий на массив двойных слов, каждое двойное слово соответствует одной функции, импортируемой из этой dll. С помощью четырёх байт функции могут вызываться по номеру и по имени. Если старший байт двойного слова установлен 1, то импортирование производится по номере и младший 31 бит используется для определения номера страницы, то есть если в какой-либо ячейке записано 80000112, значит, что импортируется 112-я функция модуля user32.dll. Если старший бит 0, то это значит, что младший 31 бит является RVA, который указывает на строку символов ASCII, содержащей имя функции.

FirstThunk – указывает на массив двойных слов, который заполняется загрузчиком. До загрузки этот массив пустой. После загрузки в него записывается массив функций внешних dll.

Структура таблицы импорта не является жёсткой. Некоторые компоновщики не используют поле FIrstThunk.





Дата публикования: 2014-11-03; Прочитано: 333 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...