取消 virtualStore 注册表[启用和禁止 UAC虚拟化]
近日发现,在win2008R2 x64下运行的服务器程序,其注册表读取路径为:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SZDomain\itvc1]
但是经过程序自动修改的注册表,被自动重定向到了:
[HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\SZDomain\itvc1]
和
[HKEY_USERS\S-1-5-21-3071037507-3784486840-4086376621-1017\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\SZDomain\itvc1]
上面两个位置应该是映射关系。
百度VirtualStore,发现这是 UAC虚拟化 ,从Vista系统开始,到win7 win8 win10 都有这种技术。
自己写的程序 再用这个 就有点烦了,对于流氓软件,倒是挺好,相当于运行在 沙箱 sandboxie 中。
----
Win7 64位系统下怎么启用和查看UAC虚拟化进程【图解】
第一步 运行windows 组策略 gpedit.msc
第二步 找到 “本地计算机——Windows设置——安全设置——本地策略——安全选项”;
把 用户账户控制:将文件及注册表写入失败虚拟化到每用户位置 的选项设置为已禁用 。
和UAC编程相关的内容:
-------------------------------
参考《windows Vista下编写安全的代码》 把下面的东西编译进资源就行了 uac.manifest <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="naily.pdbm.exe" processorArchitecture="x86" version="5.1.0.0" type="win32"/> <description>NAILY Soft</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"/> </dependentAssembly> </dependency> <!-- Identify the application security requirements. --> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
那么又有新问题了,如何使用UAC虚拟化
=========================
查看UAC虚拟化的方式是:打开任务管理器,查看 【UAC虚拟化】这一列,这一列的值 主要有:启用 停用 和不允许三种。
如何在gpedit.msc开启可使用UAC虚拟化选项,的前提下,禁止使用UAC呢?
默认是打开UAC控制的。我的电脑把它设置为 从不通知,从任务管理器中查看,所有的进程 都是 UAC虚拟化 =》 【不允许】。
关闭UAC控制,意味着所有程序都是管理员权限,才会不允许UAC控制的。
所以想要 禁止某个程序使用UAC也可以 【使用管理员权限打开】。
如果开启UAC的情况下,没有使用管理员权限打开,才会出现 默认都是UAC虚拟化的。
------------------------------------------------------------------------------------------------
一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。