![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Список функцийй в DLL [D7, Win95/98]
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 ...