Главная страница
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.039 c
14-1082889813
Nikolay M.
2004-04-25 14:43
2004.05.16
Крутится в голове песТня, а названия не помню :(


3-1082093164
Серг
2004-04-16 09:26
2004.05.16
номер строки в Dbgride


7-1081255673
Timon
2004-04-06 16:47
2004.05.16
Как программно создать пользователя с правами админа?


1-1082649393
NumLock
2004-04-22 19:56
2004.05.16
Непонятка с TThread V2.


4-1079813522
xman
2004-03-20 23:12
2004.05.16
время простоя компьютера