我的目的是从进程(间谍)中读取另一个进程(目标)的变量值。
我开始在目标进程中使用大小为2的std :: map。
在间谍过程中,遵循以下步骤:
并成功阅读地图。我验证了读取地图的大小是2.但是,无法评估地图的内容。观察每个字符串键/值对以评估监视窗口中的错误。
要确认我的步骤是否正确,我尝试读取整数变量而不是地图。可以成功检索整数的值。
有助于检索地图完整内容的任何建议吗?
答案 0 :(得分:1)
除了节点计数之外,map对象还包含指向节点的指针。您还需要在这些指针上使用ReadProcessMemory
。如果您将节点内容读取到进程地址空间中的不同地址,则需要更新节点指针。
答案 1 :(得分:0)
如果您拥有这两个应用程序,是否可以使用共享内存(CreateFileMapping / OpenFileMapping和MapViewOfFile)以更简单的方式执行此操作?然后,您可以使用特定于会话的互斥锁保护它,序列化映射,将其写入共享内存,然后在更改时发出特定于会话的事件。