![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать параметры процедуры из DLL?
777 © (2002-02-21 13:46:00)Как узнать параметры процедуры из DLL , если известно только имя процедуры?
SV (2002-02-23 15:44:00) [1]1) утилита tDump
2) зависин от того, на чем сделана DLL
Посмотри как преобразуются имена DLL в MS C++ и Borland"e.
Они при создании DLL к пользоват. названиям добавляют всю информацию о типах ф-ции, принадлежности классу, итд.
Всё это есть в Help"e
VuDZ (2002-02-23 11:33:00) [2]а ты спрашивай, спрашивай - не поможем, так посмеёмся :)
777 (2002-02-22 18:46:00) [3]Всё ясно, обреченный вопрос...
tigerfly (2002-02-22 16:39:00) [4]Этого сделать нельзя, потому что процедура/функция может принимать разноеколичество параметров, определяя истинное их количество по обязательным. Точно также, как это делает printf в С++.
VuDZ (2002-02-22 16:32:00) [5]так оно и есть. для это есть "наука" reverse engenering :>
Виктор Щербаков (2002-02-22 13:55:00) [6]Узнать количество параметров и соглашение о вызове не так сложно.
А вот как быть с их смыслом?
Допустим, установили, что у функции один целый параметр. Но каков его смысл? Может это хэндл или указатель на невероятной сложности структуру или сумма каких-либо флагов и т.д.
Тут и с дизассемблером с ума сойдешь. То же самое касается возвращаемого значения.
Алексей Петров (2002-02-22 12:50:00) [7]Можно спросить у автора DLL :)
Королев (2002-02-22 11:00:00) [8]а если не прикалываться?
как узнать какие параметры у процедуры?
VuDZ (2002-02-21 20:39:00) [9]да ладно, я просто прикалывался после тяжёлого дня, который завершиться ещё не скоро...
Иван Шихалев (2002-02-21 19:22:00) [10]Гм... Далеко не всегда имена выглядят как
_GetStdHandle@4. Тогда уж можно вспомнить имена из BPL, где и типы перечислены.
VuDZ (2002-02-21 19:08:00) [11]_GetStdHandle@4
принимает переменную, 4х байтовую переменную. Она либо DWORd либо HANDLE, но, что она возвращат, не известно. С помощью какой-то матери и SoftICE"a можно узнать, что же ей надо, или всавив это в свой код или поискав в чужом.
Ну, как индукция?
Иван Шихалев (2002-02-21 18:11:00) [12]to VuDZ
А как? Вот дисассемблируя - действительно косвенным образом. А не дизассемблируя - это как вообще?
VuDZ (2002-02-21 17:44:00) [13]только косвенным образом если не дизассемблировать
Digitman (2002-02-21 14:13:00) [14]без прототипа (описания процедуры в некоем заголовочном файле) или без знания как минимум ассемблера - никак