Advertisement
chrondog

Untitled

Jan 1st, 2013
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. HANDLE GetProcessHandle(const char *ProcessName, DWORD& ProcessID)
  2. {
  3.     PROCESSENTRY32 entry;
  4.     entry.dwSize = sizeof(PROCESSENTRY32);
  5.  
  6.     HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
  7.  
  8.     if (Process32First(snapshot, &entry) == TRUE)
  9.     {
  10.         while (Process32Next(snapshot, &entry) == TRUE)
  11.         {
  12.             if (strcmp(entry.szExeFile, ProcessName) == 0)
  13.             {  
  14.                 ProcessID=entry.th32ProcessID;
  15.                 return OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
  16.             }
  17.         }
  18.     }
  19.     CloseHandle(snapshot);
  20.     return 0;
  21. }
  22.  
  23. ULONG GetModuleAddress(const char *szModuleName, const ULONG dwProcessId)
  24. {
  25.     if (!szModuleName || !dwProcessId)
  26.         return 0;
  27.         HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
  28.     if (hSnap == INVALID_HANDLE_VALUE)
  29.         return 0;
  30.         MODULEENTRY32 me;
  31.     me.dwSize = sizeof(MODULEENTRY32);
  32.     if (Module32First(hSnap, &me))
  33.     {
  34.         while (Module32Next(hSnap, &me))
  35.         {
  36.             if (strcmp(reinterpret_cast<const char*>(me.szModule), szModuleName)==0)
  37.             {
  38.                 CloseHandle(hSnap);
  39.                 return (ULONG)me.modBaseAddr;
  40.             }
  41.         }
  42.     }
  43.     CloseHandle(hSnap);
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement