我对C#中的ReadProcessMemory
方法有疑问。我实现它时它工作正常。之后,我关闭了Visual Studio 15,然后当我重新打开VS时,它无效。
它始终返回0并且不会更改缓冲区值。我通过编辑缓冲区中的一位来测试它。 ReadProcessMemory
没有更改缓冲区。
我阅读了很多关于这种方法的文章,但我还没有找到解决方案。
[DllImport("kernel32.dll")]
public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesRead);
public static byte[] ReadBytes(IntPtr Handle, Int64 Address, uint BytesToRead)
{
IntPtr bytesRead;
byte[] buffer = new byte[BytesToRead];
ReadProcessMemory(Handle, new IntPtr(Address), buffer, BytesToRead, out bytesRead);
return buffer;
}