2010-02-21 2 views
6

Я изучал реализацию библиотеки устройств, которая явно не поддерживает мою операционную систему. В частности, у меня есть дизассемблированная DLL и достаточное количество поддерживающего исходного кода. Теперь, как структурирована таблица table/export?Внутри DLL, как структурирована таблица функций?

Мое понимание состоит в том, что первая структура раздела .data представляет собой таблицу RVAs. Далее приведена таблица строк, связанных индексом с этой первой адресной таблицей. Это имеет смысл для меня, поскольку линкер может переводить между символами и адресами.

Как функции, на которые ссылаются ординалы, вписываются в это изображение? Как узнать, какая функция имеет такой и такой порядковый номер, и как этот компоновщик разрешает это? Другими словами, учитывая, что некоторые другие DLL-импортные SOME_LIBRARY_ordinal_7, как компоновщик знает, с какой функцией работать?

Спасибо, все!

редактировать Подробнее ...

Im работает с библиотеками FTDI, и хотел бы решить, какая функция вызывается время. В частности, я вижу что-то вроде:

extern FTD2XX_Ordinal_28: near

, как я мог бы идти о определении того, какие функции на него ссылается, и как компоновщик это делать?

ответ

3

Чтобы узнать, как сборщики и загрузчик работает на Windows, вероятно, самая доступная информация поступает из набора колонок Мэтт Pietrek сделал больше, чем десять лет назад:

и самый большой и один:

+0

И 2002: http://msdn.microsoft.com/en-us/magazine/cc301805 –

Смежные вопросы