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

Вниз

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

 
777   (2002-02-21 13:46) [0]

Как узнать параметры процедуры из DLL , если известно только имя процедуры?


 
Digitman   (2002-02-21 14:13) [1]

без прототипа (описания процедуры в некоем заголовочном файле) или без знания как минимум ассемблера - никак


 
VuDZ   (2002-02-21 17:44) [2]

только косвенным образом если не дизассемблировать


 
Иван Шихалев   (2002-02-21 18:11) [3]

to VuDZ

А как? Вот дисассемблируя - действительно косвенным образом. А не дизассемблируя - это как вообще?


 
VuDZ   (2002-02-21 19:08) [4]

_GetStdHandle@4
принимает переменную, 4х байтовую переменную. Она либо DWORd либо HANDLE, но, что она возвращат, не известно. С помощью какой-то матери и SoftICE"a можно узнать, что же ей надо, или всавив это в свой код или поискав в чужом.

Ну, как индукция?


 
Иван Шихалев   (2002-02-21 19:22) [5]

Гм... Далеко не всегда имена выглядят как _GetStdHandle@4. Тогда уж можно вспомнить имена из BPL, где и типы перечислены.


 
VuDZ   (2002-02-21 20:39) [6]

да ладно, я просто прикалывался после тяжёлого дня, который завершиться ещё не скоро...


 
Королев   (2002-02-22 11:00) [7]

а если не прикалываться?
как узнать какие параметры у процедуры?


 
Алексей Петров   (2002-02-22 12:50) [8]

Можно спросить у автора DLL :)


 
Виктор Щербаков   (2002-02-22 13:55) [9]

Узнать количество параметров и соглашение о вызове не так сложно.
А вот как быть с их смыслом?
Допустим, установили, что у функции один целый параметр. Но каков его смысл? Может это хэндл или указатель на невероятной сложности структуру или сумма каких-либо флагов и т.д.
Тут и с дизассемблером с ума сойдешь. То же самое касается возвращаемого значения.


 
VuDZ   (2002-02-22 16:32) [10]

так оно и есть. для это есть "наука" reverse engenering :>


 
tigerfly   (2002-02-22 16:39) [11]

Этого сделать нельзя, потому что процедура/функция может принимать разное количество параметров, определяя истинное их количество по обязательным. Точно также, как это делает printf в С++.


 
777   (2002-02-22 18:46) [12]

Всё ясно, обреченный вопрос...


 
VuDZ   (2002-02-23 11:33) [13]

а ты спрашивай, спрашивай - не поможем, так посмеёмся :)


 
SV   (2002-02-23 15:44) [14]

1) утилита tDump
2) зависин от того, на чем сделана DLL
Посмотри как преобразуются имена DLL в MS C++ и Borland"e.
Они при создании DLL к пользоват. названиям добавляют всю информацию о типах ф-ции, принадлежности классу, итд.
Всё это есть в Help"e



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

Форум: "Система";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-64629
kserg@ukr.net
2002-05-08 11:12
2002.05.20
TStringGrid - как раскрасить строки/ячейки ?


1-64614
DenKop
2002-05-06 21:25
2002.05.20
ParamStr(1)


14-64825
Sergo
2002-04-12 08:56
2002.05.20
Дешифратор


1-64737
Programmer1
2002-05-07 10:37
2002.05.20
Как перетащить форму?


1-64723
BAHO
2002-05-04 04:20
2002.05.20
Помогите - ListView !!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский