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