流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

文章图片

流氓软件|需要「管理员身份」才能运行软件?这大多数都是流氓软件!

国内 Windows 用户几乎都知道的一个功能:以管理员身份运行 。
不管是杀毒软件还是聊天工具 , 哪怕只是个看图软件 , 都需要管理员身份才能运行 。
以管理员身份运行 , 到底意味着什么?真的有必要吗?

01、用户账户与权限
这一切都要从 Windows 上一个备受唾弃的功能——UAC(用户账户控制)说起 。
你可能没有听过这个名字 , 但你一定见过它的界面 。

对于很多人来说 , 这个弹窗和脱了裤子 \uD83D\uDCA8 没什么两样 , 因为大多数弹窗都是用户主动操作后出现的 。
多一个弹窗只是多了确认的步骤 , 徒增干扰 。
如果点「否」 , 操作大概率会被中断 , 如果点「是」 , 也就意味着程序将获得管理员权限 。
都知道 Windows 中有不同的账户对应不同的管理权限:

开启 UAC 后 , 程序默认以 Users 的权限级别运行(哪怕登录管理员账户) 。 在程序试图修改系统设置 , 文件 , 注册表等等时 , 就会弹出提示框请求管理员权限 , 类似 MAC 中的需要输入密码操作 。从 Windows 7 开始 , UAC 拥有自己的设置界面和 4 个通知档位 , 并一直延续至今 。

02、 不止一个弹窗在系统后台中 , 不同权限级别的进程是隔离的 。如果一个程序在运行过程中申请高级别权限 , 哪怕用户同意 , 它也不能直接获得权限 , 这么做是为了避免恶意程序诱导用户 , 甚至绕过 UAC 获取权限 。

无论程序怎么做 , 因为不同权限隔离 , 想到管理员权限组的进程必须重启 , 新开的进程才能以管理员权限运行 。而所有新开的进程 , 资源管理器都会验证它的权限级别 , 如果是管理员级别权限则会需要用户同意 。

03、 UAC 虚拟化UAC 刚问世的时候因为频繁弹窗的问题 , 被许多用户埋怨 , 微软为了推进 UAC 的使用率 , 引入了UAC 虚拟化 。

有很多程序运行时候只需要写入 HKLM 或 Windows 目录 , 而不用加载驱动 , Windows 检测到这种程序后 , 便会启用 UAC 虚拟化 。
原本程序需要对注册表 HKLM 目录进行的修改 , 被集中到注册表的HKCR 目录下 。原本需要写到 Windows 目录的内容 , 现在放到到 C 盘的Appdata 目录中 。

这样做既减少了 UAC 弹窗的次数 , 也提升了系统的安全性(避免其他程序通过 DLL 注入等方法获得管理员权限甚至 System 权限) 。两全其美 , 也是正经软件厂商的做法 。