Advertisement
lelejau

Untitled

Jan 18th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. // dllmain.cpp : Defines the entry point for the DLL application.
  2. #include "stdafx.h"
  3.  
  4. #define X_POSITION 0x8FDEE8
  5. #define Y_POSITION 0x8FDEEC
  6.  
  7.  
  8. DWORD dwID;
  9. HFONT debugFont;
  10.  
  11. void DrawInfoInScreen(HDC hdc, int X, int Y)
  12. {
  13.     char buffer[1024] = "";
  14.     wsprintf(buffer, "X: %d Y: %d", X, Y);
  15.  
  16.     SelectObject(hdc, debugFont);
  17.     TextOut(hdc, 20, 20, buffer, strlen(buffer));
  18.  
  19. }
  20.  
  21. // espera que pressione a tecla para acessar as offsets das posiçáes.
  22. void WaitForStart()
  23. {
  24.     //while (true)
  25.     //{
  26.     //  if (GetAsyncKeyState(VK_F10))
  27.     //  {
  28.             DWORD old;
  29.             VirtualProtect((LPVOID)X_POSITION, 4, PAGE_READWRITE, &old);
  30.             VirtualProtect((LPVOID)Y_POSITION, 4, PAGE_READWRITE, &old);
  31.  
  32.             debugFont = CreateFont(16, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH | FF_DONTCARE, "Tahoma");
  33.  
  34.  
  35.     //      break; // sai do loop fii
  36.     //  }
  37.     //  Sleep(100);
  38.     //}
  39. }
  40.  
  41. static HWND windowHandle;
  42. __declspec(dllexport) DWORD Foo() { return TRUE;  }
  43.  
  44. DWORD InitProcess()
  45. {
  46.     WaitForStart();
  47.  
  48.     while (true)
  49.     {
  50.         windowHandle = FindWindow("DMO", "DMO");
  51.         if (windowHandle != 0)
  52.         {
  53.             if ((*(int*)X_POSITION) != 0 && (*(int*)Y_POSITION) != 0)
  54.             {
  55.                 HDC winDC = GetDC(windowHandle);
  56.                 DrawInfoInScreen(winDC, *(int*)X_POSITION, *(int*)Y_POSITION);
  57.                 ReleaseDC(windowHandle, winDC);
  58.             }
  59.         }
  60.         Sleep(10);
  61.     }
  62.  
  63.     return TRUE;
  64. }
  65.  
  66.  
  67.  
  68. BOOL APIENTRY DllMain( HMODULE hModule,
  69.                        DWORD  ul_reason_for_call,
  70.                        LPVOID lpReserved
  71.                      )
  72. {
  73.     switch (ul_reason_for_call)
  74.     {
  75.     case DLL_PROCESS_ATTACH:
  76.         CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)InitProcess, NULL, 0, &dwID);
  77.         break;
  78.  
  79.  
  80.     case DLL_THREAD_ATTACH:
  81.     case DLL_THREAD_DETACH:
  82.     case DLL_PROCESS_DETACH:
  83.         break;
  84.     }
  85.     return TRUE;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement