Advertisement
CorrM

Resume\Suspend Process VB.Net

Dec 1st, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.20 KB | None | 0 0
  1. Public Class Form1
  2.     Public Enum ThreadAccess As Integer
  3.         TERMINATE = (&H1)
  4.         SUSPEND_RESUME = (&H2)
  5.         GET_CONTEXT = (&H8)
  6.         SET_CONTEXT = (&H10)
  7.         SET_INFORMATION = (&H20)
  8.         QUERY_INFORMATION = (&H40)
  9.         SET_THREAD_TOKEN = (&H80)
  10.         IMPERSONATE = (&H100)
  11.         DIRECT_IMPERSONATION = (&H200)
  12.     End Enum
  13.  
  14.     Public Declare Function OpenThread Lib "kernel32.dll" (ByVal dwDesiredAccess As ThreadAccess, ByVal bInheritHandle As Boolean, ByVal dwThreadId As UInteger) As IntPtr
  15.     Public Declare Function SuspendThread Lib "kernel32.dll" (ByVal hThread As IntPtr) As UInteger
  16.     Public Declare Function ResumeThread Lib "kernel32.dll" (ByVal hThread As IntPtr) As UInteger
  17.     Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hHandle As IntPtr) As Boolean
  18.  
  19.     Private Sub SuspendProcess(ByVal process As System.Diagnostics.Process)
  20.         For Each xThread As ProcessThread In process.Threads
  21.             Dim Opened_Thread As IntPtr
  22.             Opened_Thread = OpenThread(ThreadAccess.SUSPEND_RESUME, False, xThread.Id)
  23.             If Opened_Thread <> IntPtr.Zero Then
  24.                 SuspendThread(Opened_Thread)
  25.                 CloseHandle(Opened_Thread)
  26.             End If
  27.         Next
  28.     End Sub
  29.  
  30.     Private Sub ResumeProcess(ByVal process As System.Diagnostics.Process)
  31.         For Each xThread As ProcessThread In process.Threads
  32.             Dim Opened_Thread As IntPtr
  33.             Opened_Thread = OpenThread(ThreadAccess.SUSPEND_RESUME, False, xThread.Id)
  34.             If Opened_Thread <> IntPtr.Zero Then
  35.                 ResumeThread(Opened_Thread)
  36.                 CloseHandle(Opened_Thread)
  37.             End If
  38.         Next
  39.     End Sub
  40.  
  41.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  42.         Process.EnterDebugMode()
  43.         Dim Prog As Process = Process.Start("C:\Program Files (x86)\IObit\Driver Booster\4.1.0\DriverBooster.exe")
  44.         SuspendProcess(Prog)
  45.         WriteProcessMemory(Prog.Handle, New IntPtr(&H5AF143), New Byte() {&H75}, 1, 0)
  46.         WriteProcessMemory(Prog.Handle, New IntPtr(&H5AF149), New Byte() {&H84}, 1, 0)
  47.         ResumeProcess(Prog)
  48.         End
  49.     End Sub
  50. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement