Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Враппер для DLL

42K
18 сентября 2008 года
K0T9I
3 / / 18.09.2008
В частности для ws2_32.dll, помогите плиз. Пробовал вот так:
main.cpp
Код:
#include <windows.h>
#include <stdio.h>

HINSTANCE oldws = 0;
FARPROC p[117] = {0};

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LP lpReserved
                     )
{
     if(ul_reason_for_call == DLL_PROCESS_DETACH)
       {    
           FreeLibrary(oldws);
       }
       else if(ul_reason_for_call == DLL_PROCESS_ATTACH)
       {
                      oldws = LoadLibraryA("ws2_32old.dll");
        if (!oldws) return false;
        p[0] = GetProcAddress(oldws,"FreeAddrInfoW");
        p[1] = GetProcAddress(oldws,"GetAddrInfoW");
        p[2] = GetProcAddress(oldws,"GetNameInfoW");
                      ...............................................................
       }
 
    return TRUE;
}


// FreeAddrInfoW
extern "C" __declspec(naked) void __stdcall __E__0__()
    {
    __asm
        {
        jmp p[0*4];
        }
    }

// GetAddrInfoW
extern "C"  __declspec(naked) void __stdcall __E__1__()
    {
    __asm
        {
        jmp p[1*4];
        }
    }

// GetNameInfoW
extern "C"  __declspec(naked) void __stdcall __E__2__()
    {
    __asm
        {
        jmp p[2*4];
        }
    }
................................................................................

exports.def
 
Код:
LIBRARY "test"

EXPORTS
FreeAddrInfoW=__E__0__ @27
GetAddrInfoW=__E__1__ @24
GetNameInfoW=__E__2__ @25
.................................................


при замене стандартной ws2_32 на мою и запуске программ использующих ее вылетает ошибка. хотя dll вроде экспортирует все нужные функции.
14
18 сентября 2008 года
Phodopus
3.3K / / 19.06.2008
Жесть! Удивительно что вообще как-то работает. :)
Совет: возьми найди любой автоматизированный врапперделатель и не порти себе жизнь
42K
18 сентября 2008 года
K0T9I
3 / / 18.09.2008
ну это я нашел исходники в инете для какова то файрвола:D
подскажи пожалусто где можно найти этот врапероделатель:rolleyes:
14
19 сентября 2008 года
Phodopus
3.3K / / 19.06.2008
на wasm.ru например
42K
19 сентября 2008 года
K0T9I
3 / / 18.09.2008



спасибо помогло
зы: тему можно закрыть

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог