В DLL, как функциональная таблица структурирована?

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

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

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

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

отредактируйте Больше информации...

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

extern FTD2XX_Ordinal_28: near

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

6
задан Willi Ballenthin 22 December 2015 в 00:36
поделиться

1 ответ

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

И самый большой и лучший:

3
ответ дан 17 December 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: