Главная страница
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.04 c
3-1080216202
zubov
2004-03-25 15:03
2004.04.25
коллекция TAdoConnection.Errors


14-1080611561
Думкин
2004-03-30 05:52
2004.04.25
С днем рождения! 30 марта


1-1081348910
Relaxxx
2004-04-07 18:41
2004.04.25
Забил!!! Напомните пожалуйста как узанать есть ли в слове напри..


6-1077961868
KyRo
2004-02-28 12:51
2004.04.25
В чем ошибка при сканировании портов ClientSoket-om??


9-1067830770
Сандро
2003-11-03 06:39
2004.04.25
LINES