繁体   English   中英

从另一个进程获取内存

[英]Grabbing memory from another process

在Windows中,可以说我已经使用DLL注入进入另一个进程。 我还对注入的进程进行了一些屏幕截图,并知道了要提取的数据的位置。 可以说,另一个进程中的数据在0xaaaaaaaa处包含某个值。 如何从该过程中获取此值,以便可以在注射应用程序中使用它? 既然我已经被注入了流程,我是否可以使用像memcpy这样的东西?

memcpy(value, 0xaaaaaaaa, 10);

我假设它可能比这更复杂?

编辑:对于下面的响应,我看不到WM_COPYDATA是如何帮助我的,因为它是将数据发送到另一个应用程序,而不是从现有应用程序中检索数据。

在Windows中,每个进程都处理自己的内存。 这意味着您无法执行像memcpy这样的具有两个指向两个不同进程的内存的指针的操作。

您可以考虑进程间通信的任何选项:内存映射文件,套接字,命名管道,事件窗口消息。

这是有关IPC的更多信息

试用WM_COPYDATA并从MSDN寻求帮助。

Windows支持以下IPC机制:

剪贴板
通讯
资料复制
DDE
文件映射
邮筒
管子
RPC
Windows套接字

此处有更多详细信息进程间通信

在您的情况下,我将使用WM_COPYDATA消息

暂无
暂无

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

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