Advertisement
Guest User

Untitled

a guest
Apr 12th, 2013
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.89 KB | None | 0 0
  1. #include <windows.h>
  2. #include <tlhelp32.h>
  3.  
  4. int GetProcessID(char* szProcessName)
  5. {
  6.         PROCESSENTRY32 PE32;
  7.         HANDLE hProcessSnap = INVALID_HANDLE_VALUE;
  8.  
  9.         hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
  10.         if (hProcessSnap == INVALID_HANDLE_VALUE)
  11.                 return FALSE;
  12.  
  13.         PE32.dwSize = sizeof(PROCESSENTRY32);
  14.         if (!Process32First(hProcessSnap, &PE32))
  15.         {
  16.                 CloseHandle(hProcessSnap);
  17.                 return FALSE;
  18.         }
  19.  
  20.         do
  21.         {
  22.                 if (!strcmp(szProcessName, PE32.szExeFile))
  23.                 {
  24.                         CloseHandle(hProcessSnap);
  25.                         return PE32.th32ProcessID;
  26.                 }
  27.         } while(Process32Next(hProcessSnap, &PE32));
  28.  
  29.         CloseHandle(hProcessSnap);
  30.         return FALSE;
  31. }
  32.  
  33. HMODULE GetModuleHandleExtern(char *szModuleName, DWORD dwProcessId)
  34. {
  35.    if( !szModuleName || !dwProcessId )
  36.            return NULL;
  37.  
  38.    HANDLE hSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwProcessId );
  39.    if( hSnap == INVALID_HANDLE_VALUE )
  40.            return NULL;
  41.  
  42.    MODULEENTRY32 me;
  43.    me.dwSize = sizeof( MODULEENTRY32 );
  44.    if(Module32First(hSnap, &me))
  45.    {
  46.       while(Module32Next(hSnap, &me))
  47.       {
  48.          if(!strcmp(me.szModule, szModuleName))
  49.          {
  50.             CloseHandle(hSnap);
  51.             return me.hModule;
  52.          }
  53.       }
  54.    }
  55.    CloseHandle(hSnap);
  56.    return NULL;
  57. }
  58.  
  59. void _sendCmd(char* msg)
  60. {
  61.         int ProcessID = 0, Len = strlen(msg) + 1;
  62.         for (ProcessID = 0; !ProcessID; ProcessID = GetProcessID("gta_sa.exe"))
  63.                 ;
  64.         HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
  65.  
  66.         if (hProcess)
  67.         {
  68.                 PVOID cmd = VirtualAllocEx(hProcess, 0, Len, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  69.                 WriteProcessMemory(hProcess, cmd, msg, Len, 0);
  70.  
  71.                 DWORD func = (DWORD)GetModuleHandleExtern("samp.dll", ProcessID) + 0x62070;
  72.  
  73.                 HANDLE hThread = CreateRemoteThread(hProcess, 0, 0, (LPTHREAD_START_ROUTINE)func, cmd, 0, 0);
  74.  
  75.                 DWORD dwExitCode = 0;
  76.                 if (hThread)
  77.                 {
  78.                         WaitForSingleObject(hThread, INFINITE);
  79.                         GetExitCodeThread(hThread, &dwExitCode);
  80.                 }
  81.  
  82.                 VirtualFreeEx(hProcess, cmd, Len, MEM_RELEASE);
  83.                 CloseHandle(hThread);
  84.         }
  85.         CloseHandle(hProcess);
  86. }
  87.  
  88. void _sendchat(char* text)
  89. {
  90.         int ProcessID = 0, Len = strlen(text) + 1;
  91.         for (ProcessID = 0; !ProcessID; ProcessID = GetProcessID("gta_sa.exe"))
  92.                 ;
  93.         HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
  94.  
  95.         if (hProcess)
  96.         {
  97.                 PVOID cmd = VirtualAllocEx(hProcess, 0, Len, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  98.                 WriteProcessMemory(hProcess, cmd, text, Len, 0);
  99.  
  100.                 DWORD func = (DWORD)GetModuleHandleExtern("samp.dll", ProcessID) + 0x4A10;
  101.  
  102.                 HANDLE hThread = CreateRemoteThread(hProcess, 0, 0, (LPTHREAD_START_ROUTINE)func, cmd, 0, 0);
  103.  
  104.                 DWORD dwExitCode = 0;
  105.                 if (hThread)
  106.                 {
  107.                         WaitForSingleObject(hThread, INFINITE);
  108.                         GetExitCodeThread(hThread, &dwExitCode);
  109.                 }
  110.  
  111.                 VirtualFreeEx(hProcess, cmd, Len, MEM_RELEASE);
  112.                 CloseHandle(hThread);
  113.         }
  114.         CloseHandle(hProcess);
  115. }
  116.  
  117.  
  118. // Headers
  119.  
  120. extern "C" __declspec(dllexport) void __cdecl sendCmd(char *msg);
  121.  
  122. __declspec(dllexport) void __cdecl sendCmd(char *msg)
  123. {
  124.         _sendCmd(msg);
  125. }
  126.  
  127. extern "C" __declspec(dllexport) void __cdecl sendchat(char *text);
  128.  
  129. __declspec(dllexport) void __cdecl sendchat(char *msg)
  130. {
  131.         _sendchat(msg);
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement