Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- DWORD WINAPI MyThread(LPVOID);
- DWORD g_threadID;
- HMODULE g_hModule;
- void __stdcall CallFunction(int&, const char*, DWORD, BYTE);
- INT APIENTRY DllMain(HMODULE hDLL, DWORD Reason, LPVOID Reserved)
- {
- switch(Reason)
- {
- case DLL_PROCESS_ATTACH:
- g_hModule = hDLL;
- DisableThreadLibraryCalls(hDLL);
- CreateThread(NULL, NULL, &MyThread, NULL, NULL, &g_threadID);
- break;
- case DLL_THREAD_ATTACH:
- case DLL_PROCESS_DETACH:
- case DLL_THREAD_DETACH:
- break;
- }
- return TRUE;
- }
- DWORD WINAPI MyThread(LPVOID)
- {
- int myInt = 1;
- while(true)
- {
- if(GetAsyncKeyState(VK_F2) & 1)
- {
- CallFunction(myInt, "My custom text", 1, 1);
- }
- else if(GetAsyncKeyState(VK_F3) & 1)
- break;
- Sleep(100);
- }
- FreeLibraryAndExitThread(g_hModule, 0);
- return 0;
- }
- void __stdcall CallFunction(int& param1, const char* param2, DWORD param3, BYTE param4)
- {
- typedef void (__stdcall *pFunctionAddress)(int&, const char*, DWORD, BYTE);
- pFunctionAddress pMySecretFunction = (pFunctionAddress)(0x004113C0); // <--- This address is never the same! It will work for one execution and it will stop working if I restart the test program.
- pMySecretFunction(param1, param2, param3, param4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement