[英]Grabbing memory from another process
在Windows中,可以说我已经使用DLL注入进入另一个进程。 我还对注入的进程进行了一些屏幕截图,并知道了要提取的数据的位置。 可以说,另一个进程中的数据在0xaaaaaaaa处包含某个值。 如何从该过程中获取此值,以便可以在注射应用程序中使用它? 既然我已经被注入了流程,我是否可以使用像memcpy这样的东西?
memcpy(value, 0xaaaaaaaa, 10);
我假设它可能比这更复杂?
编辑:对于下面的响应,我看不到WM_COPYDATA是如何帮助我的,因为它是将数据发送到另一个应用程序,而不是从现有应用程序中检索数据。
在Windows中,每个进程都处理自己的内存。 这意味着您无法执行像memcpy这样的具有两个指向两个不同进程的内存的指针的操作。
您可以考虑进程间通信的任何选项:内存映射文件,套接字,命名管道,事件窗口消息。
这是有关IPC的更多信息
您应该能够使用ReadProcessMemory函数。
试用WM_COPYDATA并从MSDN寻求帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.