从另一个进程中获取内存

时间:2009-11-20 15:13:47

标签: c++ c windows dll-injection

Windows中的

,假设我已经使用DLL注入进入另一个进程。我已经在我注入的进程中完成了一些内存的屏幕截图,并且知道了我想要提取的数据的位置。假设在0xaaaaaaaa的另一个进程中有数据包含某个值。如何从该过程中获取此值,以便我可以在我的注入应用程序中使用它?由于我注入了这个过程,我可以使用像memcpy这样的东西吗?

memcpy(value, 0xaaaaaaaa, 10);

我认为它可能比这更多涉及?

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

4 个答案:

答案 0 :(得分:3)

在Windows中,每个进程都会寻址自己的内存。这意味着你不能做像memcpy这样的东西有两个指针指向两个不同进程的内存。

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

以下是有关IPC

的更多信息

答案 1 :(得分:3)

答案 2 :(得分:1)

尝试WM_COPYDATA并从MSDN获取与其相关的帮助。

答案 3 :(得分:1)

Windows支持以下IPC机制:

剪贴板
   COM
   数据复制
   DDE
   文件映射
   邮筒
   管道
   RPC
   Windows套接字

此处有更多详情Interprocess Communications

在你的情况下,我会使用WM_COPYDATA Message