有一个程序可以扫描我机器的内存以查找我正在使用的程序。我想避免这种情况。
有没有办法禁止这个其他程序检查我的内存,所以它只会看到自己的内存?我正在使用窗户。
我所知道的一个进程读取另一个进程的内存的唯一方法是 via ReadProcessMemory()
,它需要读取进程用于OpenProcess()
获取PROCESS_VM_READ
正在读取的进程的权限。所以,大概这是成功的,这意味着阅读过程有足够的权限来访问你的应用程序的内存,例如如果阅读应用程序是以管理员身份运行的,或者是一个调试器。在这种情况下,您的应用程序无法阻止它,除非通过更改其自己的安全描述符SetSecurityInfo()
(但OpenProcess()
允许调试器绕过该描述符并获得完全访问权限),或将您的应用程序设置为以更高的完整性级别运行( Vista 和更高版本)比阅读应用程序使用的PROCESS_VM_READ
权限被拒绝。
有关详细信息,请参阅 MSDN:
我总是使用 Avast Antivirus (www.avast.com) 附带的沙盒。它允许您在完全隔离的环境中运行应用程序。