PE-формат, dll'ки и экспорт из них...
От: L0kY  
Дата: 24.02.02 00:57
Оценка:
Нет ли у кого-нибудь подробного описания структуры IMAGE_EXPORT_DIRECTORY (IMAGE_DIRECTORY_ENTRY_EXPORT)?
Дело в том, что мне надо определить параметры принимаемые функциями, которые экспортирует ДЛЛька. Может кто-то уже занимался этим?

З.Ы.: С определением самого списка экспортируемых функций проблем нет.
Re: PE-формат, dll'ки и экспорт из них...
От: Alex Fedotov США  
Дата: 24.02.02 01:04
Оценка:
Здравствуйте L0kY, Вы писали:

LY>Нет ли у кого-нибудь подробного описания структуры IMAGE_EXPORT_DIRECTORY (IMAGE_DIRECTORY_ENTRY_EXPORT)?

LY>Дело в том, что мне надо определить параметры принимаемые функциями, которые экспортирует ДЛЛька.

Информации о параметрах там нет. Только имена.
-- Alex Fedotov
Re[2]: PE-формат, dll'ки и экспорт из них...
От: L0kY  
Дата: 24.02.02 01:50
Оценка:
Да, в структуре только инфа о кол-ве экспортируемых функций, их именах, ординалах и точках входа...
Я просто думал, может кто-то знает как это можно сделать (может не через эту структуру, может на ассемблере)? Ведь где-то эта инфа хранится!!! Или её в принципе не возможно вытащить???
Re[3]: PE-формат, dll'ки и экспорт из них...
От: Alex Fedotov США  
Дата: 24.02.02 01:53
Оценка:
Здравствуйте L0kY, Вы писали:

LY>Да, в структуре только инфа о кол-ве экспортируемых функций, их именах, ординалах и точках входа...

LY>Я просто думал, может кто-то знает как это можно сделать (может не через эту структуру, может на ассемблере)? Ведь где-то эта инфа хранится!!! Или её в принципе не возможно вытащить???

В самой DLL такая информация не хранится (за ненадобностью).
-- Alex Fedotov
Re: PE-формат, dll'ки и экспорт из них...
От: Dr_Sh0ck Беларусь  
Дата: 25.02.02 06:49
Оценка:
Здравствуйте L0kY, Вы писали:

LY>Нет ли у кого-нибудь подробного описания структуры IMAGE_EXPORT_DIRECTORY (IMAGE_DIRECTORY_ENTRY_EXPORT)?

LY>Дело в том, что мне надо определить параметры принимаемые функциями, которые экспортирует ДЛЛька. Может кто-то уже занимался этим?

LY>З.Ы.: С определением самого списка экспортируемых функций проблем нет.


Эту инфу можно выловить не всегда (да и хранится она в неявном виде — в имени экспортируемой C++ф-ции). Дело в том, что как правило, имена экспортируемых функций предваряют extern "C", что заставляет компилятор генерироват человекочитаемое имя (т.е. для SomeFunction(int) будет сгенерировано именно SomeFunction). Компиляторы C++ для контроля типов используют искажение имен для включение в него (имя) информации о типе принимаемых параметров. В результате получается нечто вроде @SomeFunction$I. Алгоритм такого искажения зависит от конкретного компилятора.
Do not fake yourself ;)
ICQ#: 198114726
Re[2]: PE-формат, dll'ки и экспорт из них...
От: L0kY  
Дата: 25.02.02 22:37
Оценка:
Отлично!!! Огромное спасибо! Теперь бы мне только откопать эти алгоритмы...
Может кто подскажет где искать?
Re[3]: PE-формат, dll'ки и экспорт из них...
От: Alex Fedotov США  
Дата: 25.02.02 22:44
Оценка: 2 (1)
Здравствуйте L0kY, Вы писали:

LY>Отлично!!! Огромное спасибо! Теперь бы мне только откопать эти алгоритмы...

LY>Может кто подскажет где искать?

UnDecorateSymbolName
-- Alex Fedotov
Re[4]: PE-формат, dll'ки и экспорт из них...
От: L0kY  
Дата: 04.03.02 21:15
Оценка:
Спасибо, все вроде бы получилось... правда тепеь для 100% результата надо разобраться с функциями объявленными extern "C", ведь для них генерится человеко-читаемые (нормальные) имена и они естественно не декодируются... Зато если без extern "C", то все просто прекрасно!
Еще раз спасибо всем, вы очень помогли!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.