Member 11005977 Ответов: 1

ПЭ структура - импорт перевести смещение таблицы, чтобы компенсировать


Я проанализировал каталог IMAGE_DATA_DIRECTORY для символов импорта и получил виртуальный адрес и размер. Однако у меня возникла проблема, из-за которой я не могу сопоставить виртуальный адрес со смещением файла.

Вот данные, которые я проанализировал. Смещение к каталогу данных равно 304 (вычисляется путем сложения e_lfanew и 128), что дает мне размер 60 и виртуальный адрес 8260. Я не могу найти этот виртуальный адрес в моем PE-файле.

Что я уже пробовал:

Я следовал этому учебнику (файл, который я упомянул выше, является тем, который предоставляется учебником): учебник по импорту таблицы[^]
Я уже позаботился об этой части:
Цитата:
Таким образом, при смещении 0xB0 + 0x80 = 0x130 происходит импорт каталога RVA. Там вы найдете 44200000, который находится в правильном порядке 0x00002044. RVA 0x2044-это смещение файла 0x844.

До последней части, где было написано смещение 0x844. Как автор получил эту ценность? Это единственное значение, которое мне нужно, но не было объяснено, как оно было рассчитано.

1 Ответов

Рейтинг:
12

Member 11005977

Итак, после того, как я повозился с результатами и тому подобным, я понял формулу, которая была использована. Я сохраню это здесь для тех, кто сталкивается с той же проблемой.

Виртуальный адрес каталога импорта - Виртуальный адрес раздела, к которому он принадлежит (Я решаю это, повторяя разделы. Если VR импорта < VR раздела, то предыдущий раздел является одним из них оно принадлежать), затем добавьте PointerToRawData раздела К новому значению- и все готово.