Как узнать какие в DLL находятся функции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Evlampy
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 05.02.2004 (Чт) 10:04
Откуда: Кемерово

Как узнать какие в DLL находятся функции

Сообщение Evlampy » 18.04.2004 (Вс) 16:37

А также если можно, какие параметры они имеют, какие возвращают значения и если возможно то описание.

Может есть какая-то утилита?

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.04.2004 (Вс) 16:51

API-Guide
Есть 900 с чем-то функций и процедур, есть описания параметров и возвращаемых значений, есть на каждую функцию / процедуру пример.
http://users.chello.be/cr27630/3.7/agsetup.exe
Для новых функций:
File->Internet Update->Next->New Data Pack->Next->Finish
Для русского языка:
File->Internet Update->Next->Russian Language Pack->Next->Finish

API-Viewer
Больше функций и процедур (ок. 5000), есть константы (ок. 50000), но нет описаний и примеров.
http://www.activevb-archiv.de/downloads ... pv2003.exe
Русский язык:
http://www.activevb-archiv.de/downloads ... ussian.exe

API-List
Есть функции / процедуры .NET; он-лайн.
http://www.mentalis.org/apilist/apilist.php

API-справочник на русском
Функции самые основные, т.е. их не очень много. Но всё равно полезно.
http://bbs.vbstreets.ru/download.php?id=703


ЗЫ зайти на http://www.allapi.net (http://www.mentalis.org) - там очень много интересного!

ЗЗЫ зайти в секретное место

ЗЗЗЫ зайти в еще одно секретное место
Нет меня больше

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 18.04.2004 (Вс) 22:16

он имел ввиду (мне кажется) произвольную DLL
Изображение

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.04.2004 (Вс) 22:48

:shock:
А какие тогда
если возможно то описание

там могут быть?? Тогда я не знаю! :oops:
Нет меня больше

Evlampy
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 05.02.2004 (Чт) 10:04
Откуда: Кемерово

Сообщение Evlampy » 19.04.2004 (Пн) 4:41

Да я имею ввиду произвольную DLL. Можно ли не обращаясь к автору какой-то произвольной DLL узнать что внутри, какие функции и т.д.

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.04.2004 (Пн) 9:59

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 19.04.2004 (Пн) 10:21

Evlampy писал(а):Да я имею ввиду произвольную DLL. Можно ли не обращаясь к автору какой-то произвольной DLL узнать что внутри, какие функции и т.д.

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


Dependency Walker из инструметов комплекта VS
(разумеется речь идет не о COM)
Для нормальной работы (экономии времени ) лучше всетаки
знать описания и сгнатуры фнкций

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 19.04.2004 (Пн) 12:47

GSerg писал(а):http://www.smidgeonsoft.com

Ну допустим, имена функций я могу узнать с помощью любого HEX вьювера. А на этом сайте, я так понял, из всего списка подходит PEBrowse. Но как с помощью этой проги узнать, какие параметры и с каким типом надо передавать в функцию, и куда все это вернется?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.04.2004 (Пн) 13:23

OLEView для этого в комплект VS входит

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 19.04.2004 (Пн) 13:36

Че это за VS и где его достать?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.04.2004 (Пн) 13:49

VS - это Microsoft Visual Studio в состав которой и входит Visual Basic

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.04.2004 (Вт) 9:40

Параметры функций из native dll ты не узнаешь ничем и никогда.
Поэтому я и пользуюсь в этом случае PE Browse. Просто смотрю на тело функции и делаю выводы о её параметрах...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 20.04.2004 (Вт) 9:48

А можно подробнее?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.04.2004 (Вт) 9:56

Подробнее...
Скачиваешь PE Browse. Открываешь им библу. Выбираешь функцию. Смотришь её код. Ищешь подозрительные конструкции вида mov eax, dword ptr [esp+0x8]. Следишь, куда потом они идут, какие функции на их основе вызываются. Таким нехитрым способом и определяешь число и тип параметров.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 20.04.2004 (Вт) 10:23

GSerg писал(а):Подробнее...
Скачиваешь PE Browse. Открываешь им библу. Выбираешь функцию. Смотришь её код. Ищешь подозрительные конструкции вида mov eax, dword ptr [esp+0x8]. Следишь, куда потом они идут, какие функции на их основе вызываются. Таким нехитрым способом и определяешь число и тип параметров.


Дорога в никуда
Особенно если в функцию предается указатель
(или двойной указатель)

Ну если у человека есть много времени и желания ползать пузом по коду ....

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.04.2004 (Вт) 10:31

Если указатель:
Код: Выделить всё
mov eax, dword ptr [esp+0x8]
mov eax, dword ptr [eax]

Очень просто и понятно. Да ещё и можно определить, возвращается ли что-нибудь через этот указатель.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 20.04.2004 (Вт) 10:52

GSerg писал(а):Если указатель:
Код: Выделить всё
mov eax, dword ptr [esp+0x8]
mov eax, dword ptr [eax]

Очень просто и понятно. Да ещё и можно определить, возвращается ли что-нибудь через этот указатель.


Продолжим.... итак
Функция возвращает указатель на структуру
c VB несовмесимыми типами данных
(описание структры как и сигнатуры DLL неизвестно из условия задачи)
что дальше ? Какие идеи? Как будем пользовать DLL?
И главное что нам будет просто и понятно?

Ситуация очень жизненная

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 20.04.2004 (Вт) 10:55

В асме я очень мало понимаю. И если это все так просто, то может мне подскажешь, GSerg, какие параметры передать в функцию, допустим, ScanStation (файлик прилагается)
Вложения
RadForD.zip
Библиотека для работы с FM-тюнером MediaForte
(25.68 Кб) Скачиваний: 35

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.04.2004 (Вт) 11:00

Никогда функция не возвращает указатель на структуру, это бы приводило к большим утечкам памяти или к большому геморрою по отведению оной. Если возвращается структура, то она идёт параметром.
Все параметры всех функций, при ближайшем рассмотрении - long и только long. Очень совместимо с VB.
Ищем команды типа mov dword ptr [eax+0x4], ecx - на их основе делаем вывод о том, сколько полей в структуре и какого они размера. Они тоже лонги, наверняка. 90%. short в крайнем случае.
Но ты прав, это надо ползать пузом.
Но если очень надо - будешь ползать.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 20.04.2004 (Вт) 11:27

GSerg писал(а):Никогда функция не возвращает указатель на структуру, это бы приводило к большим утечкам памяти или к большому геморрою по отведению оной. Если возвращается структура, то она идёт параметром.
Все параметры всех функций, при ближайшем рассмотрении - long и только long. Очень совместимо с VB.
Ищем команды типа mov dword ptr [eax+0x4], ecx - на их основе делаем вывод о том, сколько полей в структуре и какого они размера. Они тоже лонги, наверняка. 90%. short в крайнем случае.
Но ты прав, это надо ползать пузом.
Но если очень надо - будешь ползать.


сегодня не 1 апреля.

Сходи посмотри SDK для Photoshopa Maya и пр. коммерчиских программ по работе с графикой. Как там выделяется убирается и предается память.
Исходя и твоих мылей все
при ближайшем рассмотрении - long и только long. Очень совместимо с VB.
ну... ну....

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.04.2004 (Вт) 12:00

Блин... развелось хардкорщиков :)
Если типы данных несовместимы с VB, тогда ой. Но как правило это действительно Long.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 5

    TopList