public void WriteMemory(IntPtr memoryAddress, byte[] buffer, out int bytesWritten) { IntPtr pBytesWritten = IntPtr.Zero; ProcessMemoryReaderApi.WriteProcessMemory(handle, memoryAddress, buffer, (uint)buffer.Length, out pBytesWritten); bytesWritten = pBytesWritten.ToInt32(); }
public void OpenProcess() { ProcessMemoryReaderApi.ProcessAccessType access = ProcessMemoryReaderApi.ProcessAccessType.PROCESS_QUERY_INFORMATION | ProcessMemoryReaderApi.ProcessAccessType.PROCESS_VM_READ | ProcessMemoryReaderApi.ProcessAccessType.PROCESS_VM_WRITE | ProcessMemoryReaderApi.ProcessAccessType.PROCESS_VM_OPERATION; handle = ProcessMemoryReaderApi.OpenProcess((uint)access, 1, (uint)ReadProcess.Id); }
public byte[] ReadMemory(IntPtr memoryAddress, uint bytesToRead, out int bytesRead) { byte[] buffer = new byte[bytesToRead]; IntPtr pBytesRead = IntPtr.Zero; ProcessMemoryReaderApi.ReadProcessMemory(handle, memoryAddress, buffer, bytesToRead, out pBytesRead); bytesRead = pBytesRead.ToInt32(); return(buffer); }
public void CloseHandle() { int returnValue = ProcessMemoryReaderApi.CloseHandle(handle); if (returnValue != 0) { throw new Exception("Closing handle failed."); } }