Старый 27.06.2014, 15:43   #1
<Gh0St>
 
Аватар для <Gh0St>
 
Регистрация: 22.03.2012
Сообщений: 75
Репутация: 19
Question Генерация таблицы импорта (PE, exe)

Всем привет!
Возник вопрос: как самостоятельно сгенерировать таблицу импорта в PE файле?
Пусть функции не будут использоваться, главное, чтобы числились в импорте, вместе с DLL'ками.

От Гугла толку мало.
В двух замечательных статьях есть информация об импорте:
1) Статическое детектирование файлов: Часть 1
2) От зеленого к красному
Но по генерации не всё понятно.

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


Рисунок 1


Рисунок 2

Проблема заключается в том, что не понятно, как считать RVA.
Например (см. рис. 2), первый DWORD (структура IMAGE_THUNK_DATA32) - это RVA до структуры IMAGE_IMPORT_BY_NAME (ф-ия GetTickCount).
Чтобы получить RVA, нужно знать, по какому смещению будет находится структура IMAGE_IMPORT_BY_NAME. Адрес начала секции известен.
Но разместить структуру IMAGE_IMPORT_BY_NAME можно лишь после IMAGE_THUNK_DATA32.

В итоге получается такая ерунда: чтобы узнать X, нужно знать Y, но, чтобы узнать Y, нужно узнать X.

Теоретически, можно вместо RVA в IMAGE_THUNK_DATA32 поставить метку, например, 0x41414141. А после размещения IMAGE_IMPORT_BY_NAME, заменить метку на реальный RVA. Но как тогда узнать, какая метка к какой структуре IMAGE_IMPORT_BY_NAME относится? Не говоря уже о других проблемах.

Походу, всё это ерунда и я вообще копаю не в ту сторону.

Подскажите, как правильно генерировать таблицу импорта?
Благодарю.
__________________
- Про опыт говорят: "Мы так свои ошибки называем"
<Gh0St> вне форума   Ответить с цитированием
Старый 02.07.2014, 19:24   #2
<Gh0St>
 
Аватар для <Gh0St>
 
Регистрация: 22.03.2012
Сообщений: 75
Репутация: 19
По умолчанию

157 просмотров, и ни одного ответа.
Неужели никто не интересуется такими вопросами?
__________________
- Про опыт говорят: "Мы так свои ошибки называем"
<Gh0St> вне форума   Ответить с цитированием
Старый 04.07.2014, 16:38   #3
<Gh0St>
 
Аватар для <Gh0St>
 
Регистрация: 22.03.2012
Сообщений: 75
Репутация: 19
По умолчанию

Впрочем, не важно, сам разобрался.
Тему можно удалять.
__________________
- Про опыт говорят: "Мы так свои ошибки называем"
<Gh0St> вне форума   Ответить с цитированием
Старый 20.07.2014, 01:50   #4
Alex V
 
Регистрация: 20.07.2014
Сообщений: 1
Репутация: 0
Smile

Цитата:
Сообщение от <Gh0St> Посмотреть сообщение
157 просмотров, и ни одного ответа.
Неужели никто не интересуется такими вопросами?
мне интересно хД
Alex V вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot