【问题标题】:Grabbing memory from another process从另一个进程中获取内存
【发布时间】:2009-11-21 03:24:05
【问题描述】:

在 Windows 中,假设我使用 DLL 注入进入另一个进程。我还对我注入的进程的内存进行了一些屏幕截图,并知道我想要提取的数据的位置。假设在 0xaaaaaaaa 的另一个进程中存在包含某个值的数据。如何从该过程中获取此值,以便可以在我的注入应用程序中使用它?既然我被注入到进程中,我可以只使用 memcpy 之类的东西吗?

memcpy(value, 0xaaaaaaaa, 10);

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

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

【问题讨论】:

    标签: c++ c windows dll-injection


    【解决方案1】:
    【解决方案2】:

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

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

    这里有更多关于IPC的信息

    【讨论】:

      【解决方案3】:

      试用 WM_COPYDATA 并从 MSDN 获取相关帮助。

      【讨论】:

        【解决方案4】:

        Windows 支持以下 IPC 机制:

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

        更多详情在这里Interprocess Communications

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

        【讨论】:

          猜你喜欢
          • 2012-05-18
          • 2020-03-24
          • 1970-01-01
          • 1970-01-01
          • 2016-08-11
          • 1970-01-01
          • 1970-01-01
          • 2012-12-17
          • 1970-01-01
          相关资源
          最近更新 更多