Вниз
Скачать: CL | DM;

Как узнать параметры процедуры из 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.014 c
14-64829
VID
2002-04-06 21:51
2002.05.20
Каковы источники дохода и этого сайта ?


3-64474
maxim2
2002-04-22 13:21
2002.05.20
Неправильная кодировка


3-64534
user_Jack
2002-04-23 17:42
2002.05.20
Как избежать абракадабры.


1-64706
dzmitry
2002-05-02 12:53
2002.05.20
TListView


4-64873
matthew_v
2002-03-18 13:01
2002.05.20
Чтение и разбор spool-файла.




   Наверх