Advertisement
chino

Suspend / Resume process

Dec 3rd, 2015
633
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. typedef LONG (NTAPI *NtSuspendProcess)(IN HANDLE ProcessHandle);
  2. typedef LONG (NTAPI *NtResumeProcess)(IN HANDLE ProcessHandle);
  3.  
  4. /* ... */
  5.  
  6. void ProcessSuspend(DWORD PID)
  7. {
  8.  HANDLE hProcess = OpenProcess(PROCESS_SUSPEND_RESUME, FALSE, PID);
  9.  if(!hProcess){
  10.   printf("OpenProcess failed. ErrorCode:0x%08X\n", GetLastError());
  11.   return;
  12.  }
  13.  
  14.  NtSuspendProcess _NtSuspendProcess = (NtSuspendProcess)GetProcAddress(GetModuleHandle("ntdll"), "NtSuspendProcess");
  15.  
  16.  _NtSuspendProcess(hProcess);
  17.  
  18.  CloseHandle(hProcess);
  19. }
  20.  
  21. void ProcessResume(DWORD PID)
  22. {
  23.  HANDLE hProcess = OpenProcess(PROCESS_SUSPEND_RESUME, FALSE, PID);
  24.  if(!hProcess){
  25.   printf("OpenProcess failed. ErrorCode:0x%08X\n", GetLastError());
  26.   return;
  27.  }
  28.  
  29.  NtResumeProcess _NtResumeProcess = (NtResumeProcess)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtResumeProcess");
  30.  
  31.  _NtResumeProcess(hProcess);
  32.  
  33.  CloseHandle(hProcess);
  34.  
  35.  return;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement