Где можно найти спецификацию для структур данных, представляющих DLL в памяти? - PullRequest
1 голос
/ 19 декабря 2008

В частности, я хочу знать, как выглядит структура данных для раздела импорта (idata).

Ответы [ 2 ]

2 голосов
/ 20 декабря 2008

Формат файла DLL такой же, как и у файлов EXE, формат PE (переносимый исполняемый файл). Вы можете получить копию спецификации от Microsoft. Вы также можете попробовать Wotsit для получения общей информации о формате файла.

Windows предоставляет API ImageHlp для работы с исполняемыми файлами. Функция LoadImage выглядит неплохо для начала.

Вам также следует взглянуть на главу «Формат переносимых исполняемых файлов» из Недокументированная Windows NT . Кажется, описывается, как использовать ImageHlp для доступа к различным частям двоичного файла. Я думаю, что часть, которая вас больше всего интересует, находится на четвертой странице, которая описывает IMAGE_DIRECTORY_ENTRY_IMPORT часть PE-файла.

0 голосов
/ 22 декабря 2008

Кажется, я ошибся - структура файла PE в памяти выглядит идентично.

Можно использовать структуры, определенные в winnt.h для интерпретации памяти.

При взгляде на эти структуры вы должны помнить, что смещения (или 'RVA's [1]) little-endian . Вероятно, я бы не смутился, если бы просто указывал программу на соответствующую память, а не использовал отладчик.

[1] В Microsoft говорят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...