Сейчас на форуме: YDS, _MBK_, user99, ManHunter (+4 невидимых)

 eXeL@B —› Основной форум —› Директория импорта
Посл.ответ Сообщение


Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 04 декабря 2005 15:07
· Личное сообщение · #1

Значит вопрос возник при распаковке.
А именно,в некоторых случаях некоторых протекторов IAT лежит целая в какой-нибудь секции типа .rdata, а необходимо только восстановить переходники к этой IAT,расположенные в секции кода.
Понятно,что в такой ситуации можно не восстанавливать импорт с помощью ImpRec(добавление в конец файла новой секции), а просто с помощью PE Editor'а выставить правильные директории импорта и таблицы адресов этого импорта.
Так вот если с Import Address Table вроде всё понятно,то что же надо выставлять в поле Import Directory(какой адрес,размер)??

-----
the Power of Reversing team





Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 04 декабря 2005 16:39
· Личное сообщение · #2

Если все девственно, то ImportDirectoty идет сразу за IAT, а с размером так:
размер ImportDiectory = 5*DWORD*(кол-во импортируемых dll)+(8 нулей)




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 04 декабря 2005 16:52
· Личное сообщение · #3

TOG пишет:
Если все девственно, то ImportDirectoty идет сразу за IAT

а разве Import Directory не включает в себя iat ? =)

TOG пишет:
размер ImportDiectory = 5*DWORD*(кол-во импортируемых dll)+(8 нулей)

это размер структуры IMAGE_IMPORT_DESCRIPTOR

DillerInc пишет:
что же надо выставлять в поле Import Directory(какой адрес,размер)??

адрес - начало IMAGE_IMPORT_DESCRIPTOR, размер... гм с размером проблем не замечал в большинстве (а может и во всех) случаях он не важен, хотя это уже просто моё имхо.
А вообще про IT и т.п. читай в описание PE формата или статьях "об упаковщиках..." на васме.




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 04 декабря 2005 19:26
· Личное сообщение · #4

В общем-то,при помощи hex-редактора,одного достоверного примера для сравнения,статьи на васме,а также в какой-то мере научного тыка - я походу разобрался .
В моём случае(это был дампы исполняемых файлов,защищённых Securom четвёртой версии) получилось так:
* Import Address Table
RVA = 0000D000
Size = 228
* Import Directory
RVA = 0000DF68
Size = C8
...т.е. директория импорта находилась после IAT(всегда ли так?).
Значит насколько я понял,директорию импорта можно описать как своего рода массив структур IMAGE_IMPORT_DESCRIPTOR,каждая из которых состоит из пяти DWORD'ов и характеризует конкретную импортированную библиотеку.В конце же у меня находилось пять нулевых DWORD'ов,которые я приплюсовал ко всей остальной сумме и получил в конце концов размер этой директории.
Походу так.

-----
the Power of Reversing team



 eXeL@B —› Основной форум —› Директория импорта
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати