public ProcessMemoryHandle(Process PData) { if (PData.HasExited) { throw new Exception("Initializing ProcessMemoryHandle with an exited process."); } BaseProcess = PData; Win32ProcessHandle = IWindowsProcessMemory.OpenProcess(permissions, false, PData.Id); }
public int WriteMemory(byte[] data, int offset, int size, out bool error) { if (!ProcessRunning()) { error = true; return(0); } int bytes_written = 0; error = IWindowsProcessMemory.WriteProcessMemory((int)Win32ProcessHandle, offset, data, size, ref bytes_written); return(bytes_written); }
public byte[] ReadMemory(int offset, int size, out int NumRead, out bool error) { if (!ProcessRunning()) { NumRead = 0; error = true; return(new byte[0]); } byte[] retmem = new byte[size]; int bytes_read = 0; error = IWindowsProcessMemory.ReadProcessMemory((int)Win32ProcessHandle, offset, retmem, size, ref bytes_read); /// aaaand somehow without REF this gets stuffed into retmem? NumRead = bytes_read; return(retmem); }