繁体   English   中英

VirtualQuery和线程安全

[英]VirtualQuery and thread safety

我正在使用VirtualQuery访问正在运行的进程的所有可读内存,然后扫描该内存以查找特定的字符串,尽管我担心这可能最终导致我尝试访问的内存在其他地方释放的情况,如何继续确保正在读取的内存有效,并且在读取完整个页面之前将保持有效?

谢谢!

最好的方法(也是我可以想到的唯一方法)是基本上成为调试器。 这样,您可以挂起/恢复该进程,并且在挂起过程中可以像任何调试器一样读取其内存。 假设暂停进程是您可以接受的解决方案(并且暂停的进程没有像反调试这样的功能,尽管这种情况很少见)。

请参阅DebugActiveProcess作为起点

您仍然需要处理读取内存可以更改它的方法(例如,通过在读取页面之前删除PAGE_GUARD并在之后进行恢复),但是现在它的问题更加棘手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM