Текущий архив: 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.5 MB
Время: 0.024 c