题
在 Windows 中,假设我使用 DLL 注入进入另一个进程。我还对我注入的进程的内存进行了一些屏幕截图,并知道我想要提取的数据的位置。假设另一个进程中 0xaaaaaaaa 处有包含特定值的数据。如何从该过程中获取这个值,以便我可以在我的注入应用程序中使用它?既然我被注入到进程中,我可以使用像 memcpy 这样的东西吗?
memcpy(value, 0xaaaaaaaa, 10);
我想它可能比这更复杂?
编辑:对于下面的响应,我不明白 WM_COPYDATA 如何帮助我,因为它是将数据发送到另一个应用程序,而不是从现有应用程序检索数据。
解决方案
您应该能够使用 读取进程内存 功能。
其他提示
在Windows中每个进程解决它自己的内存。这意味着不能这样做具有的memcpy两个指针指向两个不同的过程的存储器中。
可以考虑的进程间通信的任何选项:存储器映射文件,套接字,命名管道,事件窗口消息
。下面是有关 IPC
的更多信息试试WM_COPYDATA并采取从MSDN关于它的帮助。
下面的IPC机制Windows支持:
剪贴板,点击 COM结果 数据复制结果 DDE结果 文件映射结果 邮筒结果 管道结果 RPC结果 Windows套接字
详情这里进程间通信
在你的情况下,我会使用 WM_COPYDATA消息一>
不隶属于 StackOverflow