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

Вниз

Как узнать параметры функций в DLL?   Найти похожие ветки 

 
Vorobyev Sergey   (2003-09-11 09:46) [0]

Привет всем!
Есть одна DLL-ка (знаю ее предназначение),
получил список функций..
Хочу использовать в своем проекте,
однако не знаю как узнать, какие параметры ей требуются..

Нет необходимости знать какого типа параметры (integer, PChar,DWORD и т.п., по-моему это и невозможно),
достаточно будет информации хотя бы сколько байт параметров передается в функцию, чтобы не вызвать AV, далее буду экспериментировать с параметрами..
---
Спасибо


 
KSergey ©   (2003-09-11 10:02) [1]

1.Кол-во параметров узнать так же невозможно, кроме как дизассемблируя и изучая код экспортируемых ф-ций.
2.Этот вопрос задавался последние 3 дня по разу - точно. Читайте иногда форум.


 
Vorobyev Sergey   (2003-09-11 10:24) [2]


> 2.Этот вопрос задавался последние 3 дня по разу - точно.
> Читайте иногда форум.


Специально просмотрел форум за последнюю неделю, нашел только вот это ( http://delphimaster.net/view/1-1063049854/), но здесь же нет конкретного ответа на вопрос..
Я так же перерыл инет (даже не русскоязычный), в основном все складывается к тому, что параметры узнать невозможно, кроме как дизассемблируя

> 1.Кол-во параметров узнать так же невозможно, кроме как
> дизассемблируя и изучая код экспортируемых ф-ций.


Ну допустим, я с этим смирился и начал дизассемблировать,
но тогда на что смотреть, чтобы определить параметры?
Есть какие-то общие рекомендации?
Может быть смотреть на POP, PUSH или еще что?
Или все зависит от среды, в которой разрабатывалась DLL?
Тогда наверняка есть свои рекомендации для DLL на Delphi, Visual C и т.п.

А?


 
Digitman ©   (2003-09-11 10:39) [3]


> Или все зависит от среды, в которой разрабатывалась DLL?


зависит. прямым образом.


> наверняка есть свои рекомендации для DLL на Delphi, Visual
> C


скорее рекомендации в 1-ю очередь будут иметь прямое отношение к соглашениям о межъязыковых вызовах, нежели к средам программирования и компиляторам в их составе

те же Delphi и Visual C , имея определенные (и различные) соглашения о вызовах по умолчанию, тем не менее позволяют в декларации подпрограмм перекрыть умалчиваемые соглашения явно указываемыми, если разрабатываемый программный продукт предназначен для использования в каких-то конкретных иных средах программной разработки

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

зная отличия в тех или иных соглашениях о вызовах, можно по результатам анализа сделать заключение о том, какие параметры в каком порядке и каким образом должны передаваться в тот или иной DLL-вызов, равно как и тип/размерность и порядок порядок получения результата, если таковой предусмотрен


 
KSergey ©   (2003-09-11 10:48) [4]

В книжках по Си соответстующие главы называются "соглашения о вызовах (передаче параметров)". В книгах по другим языкам - аналогично.

А вот вопрос "Ну дизассемблировал, а что дальше" - уж простите, но ответиьт можно одно: смотреть внимательно. Книжки читать. Как тут конкретно сказать??



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

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

Наверх




Память: 0.48 MB
Время: 0.033 c
14-71899
Dark Elf
2003-09-03 15:58
2003.09.22
Добавление оглавления в chm-файл


14-71868
Прохожий
2003-08-28 11:06
2003.09.22
SmtpCli из пакета ISC меня уже достал!!!


3-71493
yurez
2003-09-01 15:43
2003.09.22
translate error. value out of bounds - не могу забороть.


3-71496
Deniz
2003-08-29 07:46
2003.09.22
ADO + Parameters ... Null


14-71959
int64
2003-09-02 12:45
2003.09.22
Загадка. Простая такая.