Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Список функцийй в DLL [D7, Win95/98]


Страницы:   1 2

alsov ©   (2004-01-15 12:44:00) 

Доброго времени суток

Подскажите, можно ли из DLL-ки (она создана не мной) получить список функций с параметрами, находящихся в ней, чтобы потом использовать эти функции в моей программе.

Заранее спасибо.


Игорь Шевченко   (2004-03-02 16:38:00) [1]

Пардон, все понял.
Это не та отладочная информация, кторую я имел в виду в [16] и [18]. В той информации и параметры показываются.


Игорь Шевченко   (2004-03-02 16:34:00) [2]

idiliya   (02.03.04 16:21)

А...для имен код известный, но я не понимаю, каким образом имена экспортируемых функций добываются через ImageDebugInformation...


BiN   (2004-03-02 16:33:00) [3]

в мсдн функция MapDebugInformation, с помощью кот. реализована задача на указанных ресурсах, представляется как устаревшая

реализация с помощью sym-функций есть на
http://delphibase.endimus.ru/?action=viewfunc&topic=filedll&id=10062

Правда имхо следует исправить LoadLibrary на LoadLibraryEx с флагом LOAD_LIBRARY_AS_DATAFILE.


idiliya   (2004-03-02 16:21:00) [4]

Игорь Шевченко

естественно только имена


Игорь Шевченко   (2004-03-02 16:18:00) [5]

idiliya   (02.03.04 16:09)

Минуточку, я не совсем понял, код показывает параметрыфункций или только имена ?


idiliya   (2004-03-02 16:09:00) [6]

Игорь Шевченко

хм, сейчас проверили, пример работает для тестовой DLL скомпилированной в D5 и в BC45 с опцией не включать debug info в linker?
работает так же и с kernel32.dll (xp) и с остальными в system32

ps: пример не работает в XP: ExportedNamesSize = 0, ExportedNames = nil. в 98 все нормально


Игорь Шевченко   (2004-03-02 15:31:00) [7]

idiliya   (02.03.04 14:36)

Для этого надо иметь отладочную информацию, что в наше время большая редкость.


idiliya   (2004-03-02 14:36:00) [8]

Игорь Шевченко

тут код есть (а не утилиты)


Игорь Шевченко   (2004-03-02 14:21:00) [9]

idiliya   (02.03.04 13:58)

С отладочной информацией, пардон, и TDump все прекрасно показывает...


idiliya   (2004-03-02 13:58:00) [10]

http://forum.ixbt.com/0040/000222.html#19

http://www.delphifaq.com/fq/q2133.shtml


BiN   (2004-03-01 09:16:00) [11]

alsov ©   (16.01.04 17:31) [12]
1) список экспортируемых функций можно узнать с помощью вышеуказанных Sym-функций
2) число параметров - см. сообщение Akul-a [10]. На Wasm.ru есть утилитка специально для этой цели - правда, кажется, без исходников.


Songoku   (2004-02-29 15:36:00) [12]

AKul © -> Я говарил про не докуминтированые функцие ... там можно по использованию якеек стэка ращитать голичество параметров!


alsov   (2004-01-16 17:31:00) [13]

>1) SymLoadModule
>  SymEnumerateSymbols
>
>2) AKul ©   (16.01.04 09:24) [10]

Что это значит?


BiN   (2004-01-16 12:20:00) [14]

1) SymLoadModule
  SymEnumerateSymbols

2) AKul ©   (16.01.04 09:24) [10]


AKul   (2004-01-16 09:24:00) [15]

to Songoku ©   (16.01.04 00:50) [9]:

> хотя IDA это как то делает!


IDA их не откуда не берет! (Точнее не из DLL)
Описание большиства стандартных API-функций, а также функций библиотек компиляторов у нее есть.

А параметры "неизвестных" функций она получает анализируя их код (например, размер фрейма стека, по каким смещениям относительно EBP или ESP идет обращение, из передаваемых параметров в "известные" функции и т.д.). Но полученное таким образом "описание" функции не всегда бывает полным.


Songoku   (2004-01-16 00:50:00) [16]

2 alsov: Список функций получить можно! А вот их параметры не льзя, хотя IDA это как то делает!
Кароче изучай PE структуру!


YuRock   (2004-01-15 18:12:00) [17]

Так Вы программно получить хотите?


AKul   (2004-01-15 17:57:00) [18]

Можешь найти практически на любом хакерском, ассемблерном сайте.
URL я не помню.
По-моему было на wasm.ru, ищи в разделах инструкменты(редакторы ресурсов). Там же кажется есть доки по структуре PE-файла. Не найдешь - попробуй через поисковик.

Кстати, на скорую рукуэкспортируемые функции можно посмотреть и любым viewer'ом в текстовом режиме - они обычно располагаются за байтами=названию DLL (К примеру открываешь в Windows commander'е по F3 файл Kernel32.dll, нажимаешь поиск и вводишь KERNEL32.DLL
За найденным текстом и обычно и идут названия экспортируемых функций)


Jel   (2004-01-15 17:46:00) [19]

Разве что поискать в Сети сишные хедеры для этой dll. Иного достоверного пути узнать параметры экспортируемых функций ИМХО нет.


alsov   (2004-01-15 17:32:00) [20]

Мне нужно специализирований DLL ...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо