Форум: "Система";
Текущий архив: 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