Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Вызов функции из DLL |
Автор: fire64 25.9.2010, 13:26 |
Подскажите, как вызвать не экспортную функцию из dll. Адрес функции в виде 00089400, а так же список аргументов известен. |
Автор: okkonst 25.9.2010, 14:10 | ||
гм. Если ты знаешь адрес - в чем проблема? Так же как экспортную (по позднему связыванию). Только, вместо MyFunc = GetProcAddress(...) делаешь прямое присвоение значения адреса... |
Автор: fire64 25.9.2010, 14:22 | ||
Так что ли ?
|
Автор: fire64 25.9.2010, 15:14 | ||||||
гм. Сделал библиотеку с кодом
через IDA дезасемблировал ее, в HexReys'е вышло следующее:
Потом написал программу, загрузил библиотеку и использовал код:
В результате программа закрывается с ошибкой в в test.dll |
Автор: 586 25.9.2010, 16:29 | ||
fire64, Значит, DLL загружена по другому адресу.
|
Автор: fire64 25.9.2010, 17:17 | ||||
Ок, теперь еще уточнение: Можно вместо GetModuleHandle использовать LoadLibrary ? Как указывать адрес функции ? Пример: адрес в IDA 10002710 Значит надо писать
или
|
Автор: Abyx 26.9.2010, 00:26 |
можно. LoadLibrary сначала вызывает GetModuleHandle и если ммодуль не найден, то грузит его именно так, 0x2710 это RVA - смещение в памяти относительно базового адреса модуля |