Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Список функцийй в DLL   Найти похожие ветки 

 
alsov ©   (2004-01-15 12:44) [0]

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

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

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


 
AKul ©   (2004-01-15 12:50) [1]

Список экспортируемых функций можно получить всегда. Правда не все функции могут иметь имена (могут экспортироваться по ординалам) - это стандарт.
А вот с параметрами - напряженка.
Посмотреть можно инструментом для просмотра/редактирования структуры PE-файла.


 
alsov ©   (2004-01-15 12:59) [2]

Как именно можно получить список функций? Если не трудно - напиши код.

Каким инструментом для просмотра лучше воспользоваться?
Если есть кинь URL.


 
Вася Пупкин ©   (2004-01-15 14:47) [3]

...\Borland\Delphi6\Bin\Tdump.exe


 
AbrosimovA ©   (2004-01-15 15:49) [4]

А можно и поиском в интернете, к примеру, "Список экспортируемых функций user32.dll" , авось повезёт.


 
alsov ©   (2004-01-15 17:32) [5]

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


 
Jel ©   (2004-01-15 17:46) [6]

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


 
AKul ©   (2004-01-15 17:57) [7]

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

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


 
YuRock ©   (2004-01-15 18:12) [8]

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


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

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


 
AKul ©   (2004-01-16 09:24) [10]

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

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


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

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


 
BiN ©   (2004-01-16 12:20) [11]

1) SymLoadModule
  SymEnumerateSymbols

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


 
alsov ©   (2004-01-16 17:31) [12]

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

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


 
Songoku ©   (2004-02-29 15:36) [13]

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


 
BiN ©   (2004-03-01 09:16) [14]

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


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

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

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


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

idiliya   (02.03.04 13:58)

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


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

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

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


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

idiliya   (02.03.04 14:36)

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


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

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

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

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


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

idiliya   (02.03.04 16:09)

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


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

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

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


 
BiN ©   (2004-03-02 16:33) [22]

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

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

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


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

idiliya   (02.03.04 16:21)

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.034 c
3-1080812013
4ward
2004-04-01 13:33
2004.04.25
кодировка foxpro


14-1080792433
Паниковский
2004-04-01 08:07
2004.04.25
Набираю команду декодеров!


14-1081134433
Паниковский
2004-04-05 07:07
2004.04.25
"Мир программирования"


14-1081240265
icWasya
2004-04-06 12:31
2004.04.25
Goblins.exe


1-1081185321
В л а д и м и р
2004-04-05 21:15
2004.04.25
TEdit: проверка на ввод информации