예제 #1
0
 public void Dispose()
 {
     if (this.handle != System.IntPtr.Zero)
     {
         Kernel32.CloseHandle(this.handle);
         this.handle = System.IntPtr.Zero;
     }
 }
예제 #2
0
 public InitializerFromProcess(ProcessMemory mem, Process proc)
 {
     mem.process = proc;
     handle      = Kernel32.OpenProcess(
         Kernel32.PROCESS.VM_OPERATION | Kernel32.PROCESS.VM_READ | Kernel32.PROCESS.VM_WRITE,
         false, proc.Id);
     mem.handle = handle;
 }
예제 #3
0
 public int Resume()
 {
     if (this.suspend <= 0)
     {
         return(0);
     }
     this.suspend--;
     return(Kernel32.ResumeThread(this.handle));
 }
예제 #4
0
        public unsafe int ReadMemory(void *address, void *buffer, int size)
        {
            if (!this.Available)
            {
                return(0);
            }

            int ret;

            Kernel32.ReadProcessMemory(this.handle, address, buffer, size, &ret);
            return(ret);
        }
예제 #5
0
 public void Dispose()
 {
     this.ClearSuspend();
     if (this.handle != System.IntPtr.Zero)
         Kernel32.CloseHandle(this.handle); }
예제 #6
0
 public int ForceResume()
 {
     return(Kernel32.ResumeThread(this.handle));
 }
예제 #7
0
 public int ForceSuspend()
 {
     return(Kernel32.SuspendThread(this.handle));
 }
예제 #8
0
 public int Suspend()
 {
     this.suspend++;
     return(Kernel32.SuspendThread(this.handle));
 }
예제 #9
0
 public Thread(int id)
 {
     this.handle = Kernel32.OpenThread(Kernel32.THREAD.SUSPEND_RESUME, false, id);
 }