Главная страница
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.087 c
1-1083092621
Masha Streltsova
2004-04-27 23:03
2004.05.16
Delphi 7 --> Delphi 6


1-1083363899
Zeon
2004-05-01 02:24
2004.05.16
FindFirst / FindNext


7-1080727290
-+= Evgeney =+-
2004-03-31 14:01
2004.05.16
Извращения с сотовым телефоном


6-1080394510
csr
2004-03-27 16:35
2004.05.16
SOCKS PROXY


1-1083292783
Sun bittern
2004-04-30 06:39
2004.05.16
Инспектор объектов