我正在制作一个读取目标进程内存的应用程序。我读取的存储器需要尽可能是最新的,并且总存储器读取时间优选<1ms(现在我在0.8ms左右徘徊(。
由于我的应用程序的性质,我有很多ReadProcessMemory()
调用无法通过缓存或类似方法减少。我想知道,有可能更快地读取进程内存吗?如果性能提升足够大,我愿意将我的应用程序放入内核驱动程序中。
我的选择是什么?
调用NtReadVirtualMemory将使您的速度提高1%,这不是很令人兴奋。
您可以通过读取大块内存来提高效率,并访问所需的每个单独变量。如果你在两个不同的调用中读取偏移量0x8和0x200,那么你应该只读取整个结构,然后本地解析它
在某些情况下,NtWriteVirtualMemory可以使您的速度比常规WriteProcessMemory提高近100%。
除此之外,注入并直接访问内存是最好的途径。