Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

Функции из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
1-1083529948
KEBZ
2004-05-03 00:32
2004.05.16
Text


1-1083158410
snake1977
2004-04-28 17:20
2004.05.16
Порты


3-1082382334
Zn
2004-04-19 17:45
2004.05.16
Operation cancelled at user s request.


3-1082443117
denmin
2004-04-20 10:38
2004.05.16
Как узнать тип поля таблицы?


14-1082738176
VictorT
2004-04-23 20:36
2004.05.16
Не могу найти... Как в РТФ описываются таблицы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский