Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // dllmain.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
- #include "pch.h"
- #include <string>
- #define HOOK_ADDRESS
- std::string text = "Luca ist ein Skripptkiddy";
- DWORD dwRenderText = 0x0041A150;
- DWORD JumpBack;
- void SimpleJMP(BYTE* pAddress, DWORD dwJumpTo, DWORD size) {
- DWORD dwOldProtect, dwOldProtect2;
- VirtualProtect(pAddress, size, PAGE_EXECUTE_READWRITE, &dwOldProtect);
- auto dwRelAddr = (DWORD)(dwJumpTo - (DWORD)pAddress) - 5;
- *pAddress = 0xE9;
- *((DWORD*)(pAddress + 0x1)) = dwRelAddr;
- VirtualProtect(pAddress, size, dwOldProtect, &dwOldProtect2);
- }
- void RenderText(const char* text, int x, int y) {
- _asm {
- mov eax, 0xFF
- push - 1
- push - 1
- push 0xFF
- push 0xFF
- push y
- push x
- push text
- call dwRenderText
- add esp, 1Ch
- ret
- }
- }
- __declspec(naked) void Hook() {
- _asm pushad;
- RenderText(text.c_str(), 300, 400);
- _asm
- {
- popad;
- mov eax, 0FFh;
- jmp [JumpBack];
- }
- }
- BOOL APIENTRY DllMain( HMODULE hModule,
- DWORD ul_reason_for_call,
- LPVOID lpReserved
- )
- {
- switch (ul_reason_for_call)
- {
- case DLL_PROCESS_ATTACH:
- JumpBack = 0x0040BA4A + 5;
- SimpleJMP((PBYTE)0x0040BA4A, (DWORD)Hook, 5);
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- case DLL_PROCESS_DETACH:
- break;
- }
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement