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

Вниз

Функции из dll   Найти похожие ветки 

 
Rext   (2004-04-28 09:56) [0]

Господа!
  Есть сторонняя dll-ка. Как узнать имена функций и параметры, передаваемые этим функциям?
 
  Заранее спасибо.


 
evvcom ©   (2004-04-28 10:06) [1]

Этот вопрос уже не раз обсуждался.
Имена и количество параметров просто. Для определения типов параметров и их смысла надо сильно потрудиться дизассемблером. Хотя возможно проще найти документацию.


 
PVOzerski ©   (2004-04-28 10:30) [2]

>Имена и количество параметров просто. Для определения типов параметров и их смысла
В общем случае, для количества параметров тоже дизассемблировать придется, просто только с именами и индексами. Это если пользоваться готовыми утилитами. А если из своей проги, надо разбирать структуру файла dll.


 
evvcom ©   (2004-04-28 10:42) [3]


> В общем случае, для количества параметров тоже дизассемблировать
> придется, просто только с именами и индексами. Это если
> пользоваться готовыми утилитами.

В данном случае дизассемблер тоже можно считать утилитой. Да, дизассемблировать. Но времени это займет от нескольких секунд до нескольких минут - это я считаю просто. А типы ни один дизассемблер не распишет полностью. Если, конечно, внутри функции идет вызов общеизвестных функций API или других библиотек (MFC, например) с переданными в функцию параметрами, то IDA Pro их с легкостью определит. А если же в функцию передаются указатели на какие-то пользовательские структуры данных, то здесь придется сильно и долго попотеть.


 
Rext   (2004-04-28 11:01) [4]

Имя функции я нашел с помощью TDUMP, входящего в состав Delphi. Теперь бы разобраться с переменными...
To PVOzerski : какими утилитами лучше пользоваться?
To evvcom : можешь поподробнее объяснить, как искать параметры?


 
evvcom ©   (2004-04-28 11:05) [5]


> To evvcom : можешь поподробнее объяснить, как искать параметры?

Я уже дал намек, что пользоваться нужно дизассемблером, я использую IDA Pro, он считается лучшим. Дистрибутив ~30 МБ


 
PVOzerski ©   (2004-04-28 11:37) [6]

>какими утилитами лучше пользоваться?
IMHO, tdump вполне подходит. Сам пользуюсь, по старой памяти, fpimpdef"ом: всё-таки сам писал, хотя и по чужим мотивам :^) (исходники можно найти в дистрибутиве FreePascal). Опять же, лишней информации не дает, ровно то, что надо. Ладно, не буду саморекламой заниматься, а то в ответ багрепортами завалят...
>Теперь бы разобраться с переменными...
Это речь о параметрах или dll экспортирует еще и переменные?


 
Rext   (2004-04-28 11:39) [7]

Описка вышла ;). Именно о параметрах, с коими вызывается функция, идет речь.


 
Digitman ©   (2004-04-28 12:20) [8]


> Rext   (28.04.04 11:39) [7]


степень возможности определения типов и размеров параметров достаточно высока

степень же возможности определения ЛОГИЧЕСКОГО назначения того или иного параметра колеблется от практически нулевой до некоторой - все зависит от сложности дизассемблируемого алгоритма

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



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

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

Наверх




Память: 0.49 MB
Время: 0.067 c
1-1083047567
basken
2004-04-27 10:32
2004.05.16
Как принудительно показать хинт контрола?


4-1079689224
_san_
2004-03-19 12:40
2004.05.16
Проблема с записью в порт


9-1072642249
Igoryok
2003-12-28 23:10
2004.05.16
PolyBezier или как сделать кривую как в нормально графическом рет


1-1083163718
Svetka*
2004-04-28 18:48
2004.05.16
Лабораторная.... помогите девушке!


7-1081129575
bear9
2004-04-05 05:46
2004.05.16
Printer и Qreport