public void CloseProcess() { int returnValue = ProcessMemoryReaderApi.CloseHandle(handle); if (returnValue != 0) { throw new Exception("Closing handle failed!"); } }
public byte[] ReadMemory(IntPtr memoryAddress, uint bytesToRead, out int bytesRead) { byte[] buffer = new byte[bytesToRead]; IntPtr pointerBytesRead = IntPtr.Zero; ProcessMemoryReaderApi.ReadProcessMemory(handle, memoryAddress, buffer, bytesToRead, out pointerBytesRead); bytesRead = pointerBytesRead.ToInt32(); return(buffer); }
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 void WriteMemory(IntPtr memoryAddress, byte[] bytesToWrite, out int bytesWritten, uint bytesLength = 0) { if (bytesLength == 0) { bytesLength = (uint)bytesToWrite.Length; } IntPtr pointerBytesWritten = IntPtr.Zero; ProcessMemoryReaderApi.WriteProcessMemory(handle, memoryAddress, bytesToWrite, bytesLength, out pointerBytesWritten); bytesWritten = pointerBytesWritten.ToInt32(); }