Wrapped DLL
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- Проф. Преображенский
- Графоман
- Сообщения: 20276
- Зарегистрирован: 08 ноя 2006, 11:10
Wrapped DLL
Нужно подправить поведение некой ДЛЛ путем подмены некоторых функций. Проблема в параметрах. Как узнать список параметров экспортируемых функций?
- Lepsik
- Житель
- Сообщения: 522
- Зарегистрирован: 17 фев 2003, 18:34
- Откуда: Berlin
- Контактная информация:
-
- Пользователь
- Сообщения: 92
- Зарегистрирован: 20 фев 2003, 00:41
существуют разные частные случаи. если, скажем, DLL была сделана на C++ и экспортируемая функция не была объявлена как extern "C", то список параметров вычисляется прямо из имени функции. но такого рода частный случай является скорее исключением из правила.Lepsik писал(а):в общем случае никак.
да, список параметров может оказаться недостаточным. еще надо знать формат вызова (__cdecl, __stdcall и т.п.)
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Редактирую. Да запямятовал. undname,блин ...Boo,Name decoration включает таки имена, да, но, имхо, тип формальных агрументов - нет. Точно не помню.существуют разные частные случаи. если, скажем, DLL была сделана на C++ и экспортируемая функция не была объявлена как extern "C", то список параметров вычисляется прямо из имени функции. но такого рода частный случай является скорее исключением из правила.

1)Почти всегда PASCAL если unmanaged. Даже если даже уродская самоделка, то всегда легко проверить работает или нет. Типа просто взять и проверить - валиться будет сразу, если что не так.да, список параметров может оказаться недостаточным. еще надо знать формат вызова (__cdecl, __stdcall и т.п.)
2) Всегда мапится линкером к __cdecl (__clrcall) для managed code. И __fastcall и __stdcall.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
- Проф. Преображенский
- Графоман
- Сообщения: 20276
- Зарегистрирован: 08 ноя 2006, 11:10
Всем спасибо, проблема решилась
другим способом. ДЛЛ решил не трогать. Удалось перехватить результаты ее деятельности.
А так - да. Только дизассемблирование. Благо параметры легко вычислялись из названия функций.
А так - да. Только дизассемблирование. Благо параметры легко вычислялись из названия функций.