Wrapped DLL

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Проф. Преображенский
Графоман
Сообщения: 20276
Зарегистрирован: 08 ноя 2006, 11:10

Wrapped DLL

Сообщение Проф. Преображенский »

Нужно подправить поведение некой ДЛЛ путем подмены некоторых функций. Проблема в параметрах. Как узнать список параметров экспортируемых функций?
Аватара пользователя
Lepsik
Житель
Сообщения: 522
Зарегистрирован: 17 фев 2003, 18:34
Откуда: Berlin
Контактная информация:

Сообщение Lepsik »

в общем случае никак.
Boo
Пользователь
Сообщения: 92
Зарегистрирован: 20 фев 2003, 00:41

Сообщение Boo »

Lepsik писал(а):в общем случае никак.
существуют разные частные случаи. если, скажем, DLL была сделана на C++ и экспортируемая функция не была объявлена как extern "C", то список параметров вычисляется прямо из имени функции. но такого рода частный случай является скорее исключением из правила.

да, список параметров может оказаться недостаточным. еще надо знать формат вызова (__cdecl, __stdcall и т.п.)
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Boo,
существуют разные частные случаи. если, скажем, DLL была сделана на C++ и экспортируемая функция не была объявлена как extern "C", то список параметров вычисляется прямо из имени функции. но такого рода частный случай является скорее исключением из правила.
Name decoration включает таки имена, да, но, имхо, тип формальных агрументов - нет. Точно не помню.
Редактирую. Да запямятовал. undname,блин ... :lol:

да, список параметров может оказаться недостаточным. еще надо знать формат вызова (__cdecl, __stdcall и т.п.)
1)Почти всегда PASCAL если unmanaged. Даже если даже уродская самоделка, то всегда легко проверить работает или нет. Типа просто взять и проверить - валиться будет сразу, если что не так.
2) Всегда мапится линкером к __cdecl (__clrcall) для managed code. И __fastcall и __stdcall.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Аватара пользователя
Проф. Преображенский
Графоман
Сообщения: 20276
Зарегистрирован: 08 ноя 2006, 11:10

Всем спасибо, проблема решилась

Сообщение Проф. Преображенский »

другим способом. ДЛЛ решил не трогать. Удалось перехватить результаты ее деятельности.
А так - да. Только дизассемблирование. Благо параметры легко вычислялись из названия функций.
Ответить