Я изучал реализацию библиотеки устройств, которая явно не поддерживает мою операционную систему. В частности, у меня есть дизассемблированная DLL и достаточное количество поддерживающего исходного кода. Теперь, как структурирована таблица table/export?Внутри DLL, как структурирована таблица функций?
Мое понимание состоит в том, что первая структура раздела .data
представляет собой таблицу RVAs. Далее приведена таблица строк, связанных индексом с этой первой адресной таблицей. Это имеет смысл для меня, поскольку линкер может переводить между символами и адресами.
Как функции, на которые ссылаются ординалы, вписываются в это изображение? Как узнать, какая функция имеет такой и такой порядковый номер, и как этот компоновщик разрешает это? Другими словами, учитывая, что некоторые другие DLL-импортные SOME_LIBRARY_ordinal_7
, как компоновщик знает, с какой функцией работать?
Спасибо, все!
редактировать Подробнее ...
Im работает с библиотеками FTDI, и хотел бы решить, какая функция вызывается время. В частности, я вижу что-то вроде:
extern FTD2XX_Ordinal_28: near
, как я мог бы идти о определении того, какие функции на него ссылается, и как компоновщик это делать?
И 2002: http://msdn.microsoft.com/en-us/magazine/cc301805 –