Я изучал реализацию библиотеки устройства, которая явно не поддерживает мою операционную систему. В частности, у меня есть демонтированный DLL и изрядное количество поддержки исходного кода. Теперь, как функциональная таблица/таблица экспорта структурирована?
Мое понимание то, что первая структура .data
раздел является таблицей RVAs. Затем таблица строк, связанных индексом с той первой таблицей адресов. Это имеет смысл мне, поскольку компоновщик мог перевести между символами и адресами.
Как делают функции, на которые ссылаются ординалы, вписываются в это изображение? Как каждый знает, который функция имеет такой и такое порядковое число, и как компоновщик разрешает это? Другими словами, учитывая, что некоторый другой DLL импортирует SOME_LIBRARY_ordinal_7
, как компоновщик знает который функция работать с?
Спасибо, все!
отредактируйте Больше информации...
Я работаю с библиотеками FTDI и хотел бы решить, какая функция вызывается. В частности, я вижу что-то как:
extern FTD2XX_Ordinal_28: near
как я мог бы пойти об определении, на какую функцию ссылаются, и как компоновщик делает это?
Чтобы узнать, как компоновщики и загрузчик работают в Windows, вероятно, наиболее доступная информация взята из набора столбцов, которые Мэтт Пьетрек написал более десяти лет назад:
И самый большой и лучший: