/* * proxydll.cpp: This file has been auto-generated. */ #include "stdafx.h" #include #include // change this define to match the appropiate calling convention #define PROXYAPI WINAPI class DllClass { public: DllClass() { MessageBox(NULL, L"Startup", L"DllClass", MB_OK); hL = LoadLibrary(L"c:\\instantclient\\ooci.dll"); DWORD res = GetLastError(); WCHAR msg[255]; if (hL == NULL) { wsprintf(msg, L"LoadLibrary: FAILED (%d)", res); MessageBox(NULL, msg, L"DllClass", MB_OK); } else { wsprintf(msg, L"LoadLibrary: OK (%d)", res); MessageBox(NULL, msg, L"DllClass", MB_OK); } memset(p, 0, sizeof(p)); if (hL != NULL) { p[0] = GetProcAddress(hL,"LXUCOLKEYSZ"); p[1] = GetProcAddress(hL,"LXUHCDECOMP"); p[2] = GetProcAddress(hL,"LcxInitialize"); // [...] Restliche Codezeilen ausgeblendet... p[2994] = GetProcAddress(hL,"ztcsh"); p[2995] = GetProcAddress(hL,"ztcsr"); } } ~DllClass() { MessageBox(NULL, L"Shutdown", L"DllClass", MB_OK); FreeLibrary(hL); } public: HINSTANCE hL; FARPROC p[2996]; }; // -------------------------------------------------------- // global DllClass object DllClass dllObject; // -------------------------------------------------------- // MAIN ENTRY BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { /* switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: { dllc.hLThis = hModule; break; } case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: default: break; } */ return TRUE; } // LXUCOLKEYSZ extern "C" __declspec(naked) void PROXYAPI __LXUCOLKEYSZ__() { __asm jmp dllObject.p[0*4]; } // LXUHCDECOMP extern "C" __declspec(naked) void PROXYAPI __LXUHCDECOMP__() { __asm jmp dllObject.p[1*4]; } // LcxInitialize extern "C" __declspec(naked) void PROXYAPI __LcxInitialize__() { __asm jmp dllObject.p[2*4]; } /* * [...] Restliche Codezeilen ausgeblendet... */ // ztcsh extern "C" __declspec(naked) void PROXYAPI __ztcsh__() { __asm jmp dllObject.p[2994*4]; } // ztcsr extern "C" __declspec(naked) void PROXYAPI __ztcsr__() { __asm jmp dllObject.p[2995*4]; }