除了虚拟机和沙箱,还可以让 Windows 软件在物理机运行于低权限来防止你的私密文件被偷窥


国内公司开发的很多软件的口碑很差,这些流氓软件可能会扫描用户的硬盘,一些用户把这些流氓软件安装在虚拟机或沙箱,但虚拟机和沙箱占用的软硬件资源比较大,下面介绍一种不使用虚拟机和沙箱也能安全地运行流氓软件的方法。

下文描述的方法并不万能,对安装程序使用 Win32 API 例如 GetTokenInformation() 来检测自己是否获取了管理员权限的软件无效,对安装程序仅在 mainfest 里声明要提升权限的软件有效
亲测对微信和百度网盘有效,对 Tim 、腾讯会议、 Win32 版 QQ 等无效。对于 QQ ,换用 Win32 转制版 UWP QQ (微软 Windows 应用商店 或 蓝奏)即可让下文描述的方法生效
如果无法使用下文描述的操作来处理你从官网下载的最新版本百度网盘或微信,那可能是因为最新版本的百度网盘或微信的安装程序换用了 Win32 API 来检测自己有没有获取到管理员权限,那么可以试试换用我用过的旧版本百度网盘(蓝奏)或微信(蓝奏)
上面的 QQ 和微信的蓝奏链接的访问密码都是 1234 ,压缩包的加压密码都是 fuckmalware 。将对 QQ 和微信各下载的 2 个压缩包里的文件解压到同一文件夹,再解压QQ桌面版.7z.001 和微信_3.2.1.7z.001 即可。搞这么麻烦的原因是这 2 个安装程序都超过 100 MiB ,而蓝奏不允许免费用户上传的单个文件超过 100 MiB 

很多软件的安装程序在刚被启动时会申请管理员权限,如果用户授予了管理员权限,那么安装程序就可以为所欲为,所以下面的重点就是安装和运行软件全程不要给安装程序和安装好了的软件授予管理员权限。

1 添加低权限用户

Windows 键 + R , 输入 lusrmgr.msc 并运行,在权限极低的用户组 Guest 添加一个账户,以后就用这个权限极低的账户来运行流氓软件的安装程序和软件本身

2 以低权限账户的身份运行软件

必须要欺骗安装程序,让它误以为自己已经获得了管理员权限。以 Powershell 为例

2.1 让以低权限账户 noprivilege 的身份运行的 Powershell 进程误以为自己获得了管理员权限

假设你之前在 Guest 用户组新建的账户的名字是 noprivilege ,启动 Powershell 的命令名为 pwsh
Windows 键 + R ,输入 runas /user:noprivilege pwsh
在弹出的窗口里输入 noprivilege 的密码后回车,输入密码的过程中不会回显
在以 noprivilege 的身份运行的 Powershell 窗口里运行 $env:__COMPAT_LAYER = 'RunAsInvoker'
如果要在这个 Powershell 窗口里运行的程序检测自己有没有获得管理员权限的方法仅为在 mainfest 声明要提升权限,那么你就可以用这个 Powershell 窗口来欺骗那些要提升权限软件

2.2 从误以为自己获取了管理员权限的 powershell 运行流氓软件的安装程序

如果没有弹出 UAC ,那么恭喜你,本文描述的方法对你想处理的流氓软件有效!顺着过完安装程序的流程即可
要是弹出了 UAC ,那么本文描述的方法无效

2.3 以 noprivilege 的身份运行流氓软件

把上面以 noprivilege 的身份运行 Powershell 的命令的 pwsh 改为你要运行的软件就行,比如以低权限运行微信
runas /user:noprivilege "C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
你可以把上面的命令放在快捷方式里:在文件夹空白处鼠标右键
→ 新建
→ 快捷方式
→ 填入上面的命令
(下面的操作都是可选的)
→ 把新建的快捷方式放在环境变量 PATH 指定的路径下
→ 以后就可以直接 Windows 键 + R 输入刚才创建的快捷方式的名字(可以不包含快捷方式的文件扩展名 .lnk ),或者在 Powershell 输入刚才创建的快捷方式的完整文件名(含 .lnk ),回车后,来便捷地以 noprivilege 的身份运行流氓软件

3 还有办法对付 QQ

腾讯在微软 Windows 应用商店上传了 Win32 转制版 UWP QQ (下文简称 QQ ,不再用全称 “ Win32 转制版 UWP QQ ”),比 Win32 版 QQ 干净得多,比如从安装到使用全程不申请管理员权限、没有 QPCore ,但是既然是 Win32 转制的,那么仍然可能会威胁用户的数据安全。因此需要让 QQ 运行在低权限账户。

先到 QQ 的安装路径,本文开头提供的 QQ 的安装路径是 C:\Program Files\WindowsApps\903DB504.46618D74B1ECA_9.4.6.0_x86__a99ra4d2cbcxa 。也可以在运行了 QQ 之后,在任务管理器“进程”选项卡下定位到 QQ 的进程,然后右键 → 打开文件所在位置

在 QQ 的安装路径的属性 → “安全”选项卡 → 高级
→ 修改所有者为你能操控的账户,例如你正登录着的账户
→ 在高级安全设置窗口添加条目,允许你刚新建的低权限账户 noprivilege 对 QQ 的安装路径及其子文件、子文件夹具有读取和执行权限,例如我添加了允许 noprivilege 所在的用户组 Guests 对 QQ 的安装路径及其子文件、子文件夹具有读取和执行权限

像前面一样用 noprivilege 的身份来运行 QQ

4 在你不想让流氓软件访问的文件夹的属性 → “安全”选项卡 下禁止 noprivilege 访问

我设置的是禁止 noprivilege 所在的用户组 Guests 访问存储了我的私密信息的文件夹,毕竟我可能会把电脑借给亲戚弟弟妹妹们打游戏玩,给他们打游戏用的本地账户不能是 noprivilege ,因为 noprivilege 里有我的 QQ 聊天记录图片视频,因此应该把 Guests 用户组下其他用户拿来给他们打游戏用,所以设为禁止 Guests 访问我的私密文件,既能防流氓软件还能防弟弟妹妹们

只要你以 noprivilege 的身份运行着的软件没有利用 Windows 的用户和权限组功能的漏洞,且你的电脑从来没有以管理员身份运行过流氓软件,那就能避免流氓软件偷窥你的私密文件