我发现/重写了一些代码,直接将数据读/写到另一个应用程序的内存中。读取/写入单个地址的代码速度与我想要的一样快,但查找地址是一件麻烦事。我假设对于任何给定的程序,内存中变量的位置相对于给定位置是相同的,我猜测起始位置。
所以我目前用它来读取内存:
Public Function ReadBytes(ByVal addr As IntPtr, ByVal size As Int32) As Byte()
Dim _rtnBytes(size - 1) As Byte
ReadProcessMemory(_targetProcessHandle, addr, _rtnBytes, size, vbNull)
Return _rtnBytes
End Function
这段代码需要一堆全局变量,附加到内存的例程等。
理想的答案会给我一个代码的方法或引用,它给出了给定进程的内存起始地址。我在VB.NET中这样做