Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #include <Windows.h>
  2.  
  3. typedef SC_HANDLE (WINAPI* f_OpenServiceA)(SC_HANDLE,LPCSTR,DWORD);
  4. f_OpenServiceA pTrp_OpenServiceA;
  5.  
  6. DWORD p_XTrapVa=0;
  7. bool b_DriverTerminated=false;
  8. BYTE* pPattern=reinterpret_cast<BYTE*>("\x5C\x5C\x2E\x5C\x58\x36\x76\x61\x30");
  9. char* pDriver=nullptr;
  10.  
  11. SC_HANDLE WINAPI hk_OpenServiceA(SC_HANDLE hSCManager,LPCSTR lpServiceName,DWORD dwDesiredAccess)
  12. {
  13.     if(pDriver==nullptr)
  14.     {
  15.         pDriver=reinterpret_cast<char*>(FindPattern(pPattern,"xxxxxxxxx",p_XTrapVa+0x2C0000,0x500000,4)+4);
  16.     }
  17.     else
  18.     {
  19.         if(!strcmp(lpServiceName,pDriver)){
  20.             SC_HANDLE Ret=pTrp_OpenServiceA(hSCManager,lpServiceName,dwDesiredAccess);
  21.             CloseServiceHandle(hSCManager);
  22.             return Ret;
  23.         }
  24.     }
  25.     return pTrp_OpenServiceA(hSCManager,lpServiceName,dwDesiredAccess);
  26. }
  27.  
  28. void hk_EnumWindows()
  29. {
  30.     Sleep(-1);
  31. }
  32.  
  33. union DWORD_Split
  34. {
  35.     DWORD dwDWORD;
  36.     BYTE bByte[4];
  37. };
  38.  
  39. DWORD __stdcall HaxThread(void* pArg)
  40. {
  41.     Sleep(500);
  42.     pTrp_OpenServiceA=reinterpret_cast<f_OpenServiceA>(SetDetour(OpenServiceA,hk_OpenServiceA,5));
  43.     while(p_XTrapVa==0)
  44.     {
  45.         p_XTrapVa=reinterpret_cast<DWORD>(GetModuleHandle("XTrapVa.dll"));
  46.     }
  47.     DWORD_Split dws_EnumWindows;
  48.     dws_EnumWindows.dwDWORD=reinterpret_cast<DWORD>(EnumWindows);
  49.     DWORD* p_XTrapVa_pEnumWindows=reinterpret_cast<DWORD*>(FindPattern(dws_EnumWindows.bByte,"xxxx",p_XTrapVa+0x2A0000,0x100000,4));
  50.     *p_XTrapVa_pEnumWindows=reinterpret_cast<DWORD>(&hk_EnumWindows);
  51.  
  52.     return 0;
  53. }
  54.  
  55. void CloakModule(HINSTANCE hMod)
  56. {
  57.     DWORD dwOld;
  58.     VirtualProtect(hMod,0x1000,PAGE_WRITECOPY,&dwOld);
  59.     memcpy(hMod,GetModuleHandle("kernel32.dll"),0x1000);
  60.     VirtualProtect(hMod,0x1000,dwOld,&dwOld);
  61. }
  62.  
  63. int __stdcall DllMain(HINSTANCE hDll,DWORD dwReason,void* pReserved)
  64. {
  65.     if(dwReason==DLL_PROCESS_ATTACH){
  66.         CloakModule(hDll);
  67.         AllocConsole();
  68.         CreateThread(0,0,HaxThread,0,0,0);
  69.     }
  70.     return 1;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement