近日发现,在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虚拟化的。

取消 virtualStore 注册表[启用和禁止 UAC虚拟化]的更多相关文章

  1. Windows注册表的基本知识及应用

    转帖:Windows注册表的基本知识及应用 2009-12-23 11:30:56 分类: Windows注册表的基本知识及应用  一.注册表的重要性 在DOS年代,对计算机的内存管理及系统配置主要通 ...

  2. 10#Windows注册表的那些事儿

    引言 用了多年的Windows系统,其实并没有对Windows系统进行过深入的了解,也正是由于Windows系统不用深入了解就可以简单上手所以才有这么多人去使用.笔者是做软件开发的,使用的基本都是Wi ...

  3. C# 32位程序访问64位系统注册表

    原文:C# 32位程序访问64位系统注册表 我的上一篇文章已经阐述了“32位程序和64位程序在64位平台上读\写注册表的区别”,那么接下来将要回答上篇所留下来的一个问题:32位程序如何访问64位系统注 ...

  4. UAC 注册表 WIN64 OS 运行时主题

    首先EXE程序是32位,DelphiIDE对Project默认是启用主题的,默认情况在WIN64 OS下运行时,无管理员权限. WIN64 OS,默认情况下UAC是启用的. 上述默认情况下,EXE 是 ...

  5. UAC在注册表中的对应位置

    UAC在注册表中的对应位置 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System 相关键值设置: U ...

  6. 通过注册表检测UAC是否处于关闭状态(不弹窗)

    注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System UAC各级别对应的注册表值: 从 ...

  7. IE 将“通过域访问数据源”设置为启用(注册表)

    XP HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1\1406 Vista+ HKCU\Softwar ...

  8. [C#]设置或取消开机启动(注册表形式)

    原文:[C#]设置或取消开机启动(注册表形式) 使用代码: 代码效果:

  9. ImageMagick: win7 | win8 & uac (用户帐户控制) 注册表的一些事

    现在用win7,win8的人越来越多了, 程序在一些 win 7, win8 上运行会遇到一些之前没想过的兼容性问题. 比如 64位系统运行32位程序时的注册表重定向,还有因为 uac (用户帐户控制 ...

随机推荐

  1. 浅析Linux下进程间通信:共享内存

    浅析Linux下进程间通信:共享内存 共享内存允许两个或多个进程共享一给定的存储区.因为数据不需要在客户进程和服务器进程之间复制,所以它是最快的一种IPC.使用共享内存要注意的是,多个进程之间对一给定 ...

  2. 問題排查:建立選單時的錯誤 errcode:65318,errmsg:must use utf-8 charset hint: [Vwda70520vr18]

    目前已知:程式存檔時,將檔案編碼格式設定成 UTF-8 即可. 筆者使用的文字編輯器為 Editplus 3.51,檔案編碼格式很多帶 UTF8.Unicode 字眼的選項,選 UTF-8 即可.

  3. Cacti的基本使用

    对于Cacti是通过snmpget来获取数据,使用 RRDtool绘画图形,用snmp服务获取数据,然后用rrdtool储存和更新数据,那么就可以简单理解为Cacti就是RRDTool的一个web图形 ...

  4. redis pipeline

    redis pipeline 简而言之就是把多个redis命令打包,一起发送给redis server,并且一起返回结果,减少客户端和服务器之间的多次“折返跑”

  5. Ubuntu终端Terminal常用快捷键

    快捷键 功能 Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 Ctrl+d 删除当前 ...

  6. Activity的四种启动模式详解

    Activity的启动模式在清单文件AndroidManifest.xml中的Activity属性中进行设置: 如:<activity android:name=".MainActiv ...

  7. [2012山东ACM省赛] Pick apples (贪心,完全背包,枚举)

    Pick apples Time Limit: 1000MS Memory limit: 165536K 题目描述 Once ago, there is a mystery yard which on ...

  8. 过滤器(servlet.filter)和拦截器(springmvc.interceptor)区别

    ①拦截器是基于java的反射机制的,而过滤器是基于函数回调. ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器. ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求 ...

  9. c# 后台弹出对话框 和前台弹出新页面

    前台: window.showModalDialog("daoru.aspx", "NPOI_daoru_window", "status:false ...

  10. 在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...