zoukankan      html  css  js  c++  java
  • 取消 virtualStore 注册表[启用和禁止 UAC虚拟化]

    近日发现,在win2008R2 x64下运行的服务器程序,其注册表读取路径为:


    [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeSZDomainitvc1]

    但是经过程序自动修改的注册表,被自动重定向到了:


    [HKEY_CURRENT_USERSoftwareClassesVirtualStoreMACHINESOFTWAREWow6432NodeSZDomainitvc1]


    [HKEY_USERSS-1-5-21-3071037507-3784486840-4086376621-1017SoftwareClassesVirtualStoreMACHINESOFTWAREWow6432NodeSZDomainitvc1]

    上面两个位置应该是映射关系。

    百度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虚拟化的。

  • 相关阅读:
    LightOJ--1094-- Farthest Nodes in a Tree(树的直径裸题)
    poj--1383--Labyrinth(树的直径)
    C字符数组和C++字符串
    Miracl库学习
    GBDT学习
    Java编程规范
    关于JS中的数组[]的方法
    焦点离开事件
    Firebug 安装方法
    JAVASE 中的String的字符串
  • 原文地址:https://www.cnblogs.com/ayanmw/p/5129658.html
Copyright © 2011-2022 走看看