繁体   English   中英

从其他进程读取和写入

[英]read and write from other process

我希望能够从另一个进程的内存中进行读写。 我从Kernel32.dll调用了函数Readprocessmemory()WriteProcessmemory() ,并使用GetProcessByName()函数来查找进程。 这样成功了。

我看到了使用readprocessmemory()函数的示例,并在从kernel32.dll调用它后对其进行了kernel32.dll ,但我不明白它的工作原理-如何使用该函数从另一个进程中读取? 我将不胜感激。

为了对另一个进程读取和写入内存,您需要使用kernel32提供的ReadProcessMemory和WriteProcessMemory函数。 如果使用的是C#,则需要使用PInvoke将这些函数导入当前进程。

一般来说,您需要执行以下操作:

  • 确定您要读取/注入的过程
  • 调用OpenProcess()获取该进程的句柄。 您将要发送GENERIC_READ | GENERIC_WRITE作为对此的标志,您将获得一个HPROCESS,您需要检查它是否为NULL。
  • 确定您要在外部进程中读取的位置(这是外部进程指针)。 您还需要确定要读取的字节数。
  • 在当前进程中分配那么多字节以保存读取结果。
  • 调用ReadProcessMemory,传入您打开的HPROCESS,在另一个进程中读取的外部进程指针,指向本地缓冲区的指针以及将从外部进程读取到本地缓冲区的字节数。

完成此操作后,您可以查看您的本地缓冲区,并且您将看到曾经在外来进程中的数据,并且生活会很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM