--- Revision None +++ Revision 306632346634 @@ -0,0 +1,99 @@ +#include "main.h" +#include "detours.h" + +typedef void (WINAPI *ctFunc)(void); +typedef char* (WINAPI *gtFunc)(void); +typedef void (WINAPI *atFunc)(const char*, unsigned long, bool); +typedef void* (WINAPI *ftFunc)(int); + +ctFunc clear_text = reinterpret_cast(0x66023a70); +gtFunc get_text = reinterpret_cast(0x66023a10); +atFunc append_text = reinterpret_cast(0x66028870); +ftFunc find_edit = reinterpret_cast(0x660231f0); + +void Mget_text(); +char* Mclear_text(); +void Mappend_text(const char*, unsigned long, bool); + +extern "C" BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + { + + // __asm("mov eax, 1"); + + //MessageBox(0, "Attached.", "msg", MB_OK | MB_ICONINFORMATION); + + DetourTransactionBegin(); + DetourUpdateThread(GetCurrentThread()); + DetourAttach(&(PVOID&)get_text, (PVOID) Mget_text); + DetourAttach(&(PVOID&)clear_text, (PVOID) Mclear_text); + DetourAttach(&(PVOID&)append_text, (PVOID) Mappend_text); + DetourTransactionCommit(); + + } + break; + + case DLL_PROCESS_DETACH: + { + DetourTransactionBegin(); + DetourUpdateThread(GetCurrentThread()); + DetourDetach(&(PVOID&)get_text, (PVOID) Mget_text); + DetourDetach(&(PVOID&)clear_text, (PVOID) Mclear_text); + DetourDetach(&(PVOID&)append_text, (PVOID) Mappend_text); + DetourTransactionCommit(); + + } + break; + + case DLL_THREAD_ATTACH: + // attach to thread + break; + + case DLL_THREAD_DETACH: + // detach from thread + break; + } + return TRUE; // successful +} + +void Mget_text() +{ + +} + +char* Mclear_text() +{ + +} + +void Mappend_text(const char* txt, unsigned long color, bool unk) +{ + +} + +/* Errors: + +Z]+0x8)||undefined reference to `_SEH_prolog4'| +Z]+0x72)||undefined reference to `_SEH_epilog4'| +Z]+0x8)||undefined reference to `_SEH_prolog4'| +Z]+0x5e)||undefined reference to `_SEH_epilog4'| +0]+0x56)||undefined reference to `??3@YAXPAX@Z'| +0]+0x83)||undefined reference to `??3@YAXPAX@Z'| +4]+0xf)||undefined reference to `__security_cookie'| +4]+0x1d2)||undefined reference to `??3@YAXPAX@Z'| +4]+0x1ff)||undefined reference to `??3@YAXPAX@Z'| +4]+0x236)||undefined reference to `@__security_check_cookie@4'| +4]+0x20)||undefined reference to `??2@YAPAXI@Z'| +4]+0x46)||undefined reference to `??3@YAXPAX@Z'| +20]+0xbc)||undefined reference to `??2@YAPAXI@Z'| +20]+0x1f0)||undefined reference to `??3@YAXPAX@Z'| +8]+0x56)||undefined reference to `??2@YAPAXI@Z'| +8]+0xed)||undefined reference to `??3@YAXPAX@Z'| +16]+0x7)||undefined reference to `__security_cookie'| +16]+0x39)||undefined reference to `@__security_check_cookie@4'| +||=== Build finished: 18 errors, 0 warnings ===| + +*/