之前很多人都讨论关于 QQ 读取浏览器隐私记录的事情,关于的解决办法, 主要还是通过火绒去设立规则去屏蔽部分目录,使得 QQ 无法访问到对应目录。
关于这种类似事情的解决办法最彻底是将类似 QQ 软件安装到虚拟机中,才是最保险的。
但是虚拟机打开非常麻烦,而且基于 windows 运行,因为会虚拟一整套操作系统,导致系统资源占用过多,使用体验不佳,除非是那种偶尔使用 QQ 的用户比较适合。
QQ 安全组件
也有人研究过将 QQ 放到沙箱中运行,但是 QQ 会有驱动加载问题,在运行 QQ 时会判断 QQProtect 是否载入正常才会继续,否则会提示"QQ 安全组件异常,请重新下载并安装。",之后就退出程序,不让你使用。
那么,这个所谓的 QQ 安全组件其进程文件是 QQProtect.exe,他会挂载驱动 QQProtectX64.sys,并 hook 一堆内核级的系统函数。
也就意味着你运行一个腾讯 QQ,那么他基本就掌握了你电脑所有权限,比如它可以获取并决定你所有文件操作记录,进程打开记录,所有注册表等。
但 QQ 本质只是用于通信,聊天,它做了太多非自己本职工作的事情,作为用户是非常不能接受的。
关于沙箱中运行,网上有人给过在沙箱中运行 QQ 的办法,先启动 QQProtect,再启动 QQ。这种办法我并没有实践成功,在实际使用中,一般沙箱是不能为含有驱动程序的软件使用的。
就算沙箱允许程序运行了,那么所运行的程序有可能会绕过沙箱的限制,那么就没有沙箱的意义了。
Microsoft Store 版本
在 IOS 上有 apple store,在 Android 上有 Google play,其上架的产品都需要遵守其应用商店的规范才能进行上架。
因此一点,就可以将很多软件的使用权限,必要权限,非必要权限进行一些管理和约束,不能胡作非为。
同样在 Windows 上的 Microsoft store 也有相关制约,我发现微软商店的 QQ 运行时不会加载任何驱动,不会 HOOK 你任何内核级别的函数。
虽然它下载时附带了驱动文件,但并不会执行。为了进一步尝试,我把商店下载的 QQ 中,相关驱动文件全部删除,QQProtect.exe 也删除,依然可以使用 QQ。
以此来看,QQ 起码在微软商店这里非常老实。
我发现微软商店的 QQ 文件所在目录都是 SYSTEM 所属权,管理员无法进行修改删除,也无法直接通过文件启动 QQ。只能通过微软开始中提供的菜单进行启用 QQ。
启用后的 QQ 进程的用户名还是 administor,这点很是疑惑。
但由于没有深入了解过微软商店的程序运行机制,就去查了微软商店应用的权限,从中了解到,应用是有权访问到系统中所有文件。
因此我放弃了直接运行微软商店版本方法,如果只是不想运行 QQProtect 就直接使用微软商店提供的 QQ 就可以了。
Sandboxie 沙箱
这个沙箱也是之前在网上网友推荐的一款不错的沙箱程序。
https://github.com/sandboxie-plus/Sandboxie
在 release 页直接下载就好了,有需要的也可以自己进行编译。
在 Sandboxie 中使用默认沙盘,或者创建一个专门给腾讯程序用的沙盘。沙盘与沙盘与物理机之间的文件都是相互隔离的,任何写入操作实际上是写入到了沙箱中的映射文件。
读取时默认可以访问到全局文件,但你可以为它设立一些目录,来拒绝它。
由于微软商店的 QQ 所在目录是由保护的,我们无法直接运行,那么我们将这个目录复制出来。到你的任意磁盘目录。
商店中 QQ 的所在目录:C:\Program Files\WindowsApps\903DB504.46618D74B1ECA_9.4.6.0_x86__a99ra4d2cbcxa
比如我移动到了: C:\temp\903DB504.46618D74B1ECA_9.4.6.0_x86__a99ra4d2cbcxa
既然 QQ 没有了保护壳,那么我们直接将他放到沙箱中运行。
右键沙箱-在沙盘中运行任意程序:
C:\temp\903DB504.46618D74B1ECA_9.4.6.0_x86__a99ra4d2cbcxa\QQ\Bin\QQ.exe
一切顺利!
也可以写个快捷方式方便启动,将文件目标写为:
"C:\Program Files\Sandboxie\Start.exe" /box:Tencent "C:\temp\903DB504.46618D74B1ECA_9.4.6.0_x86__a99ra4d2cbcxa\QQ\Bin\QQ.exe"
优化沙箱中的 QQ
为了方便 QQ 存取文件,我们将 QQ 聊天记录,数据库,QQ 群下载的所在文件夹开放给 QQ 直接访问,这样 QQ 所进行的修改和操作就可以不需要多余做一层映射了。
右键沙盘-》沙盘设置=》资源访问=》文件访问=》直接访问
在这里加入 QQ 的聊天记录文件夹:
D:\Program Files (x86)\QQFILE\
每个人的不一样,我将其独立出来并没有放在系统盘,避免系统意外时进行重装系统时找回。
然后你可以在 沙盘设置=》资源访问=》文件访问=》组织访问 中加入你禁止 QQ 的文件或目录。
QQ 在沙箱中产生的文件都可以在沙箱实际目录中查看,Tencent 为我的沙盘名。
驱动器目录:C:\Sandbox\Administrator\Tencent\drive
用户相关数据:C:\Sandbox\Administrator\Tencent\user
当你使用一段时间 QQ 后,你就可以进入这个目录查看 QQ 做了哪些孽,然后将不需要的目录给拒绝访问掉。
比如,我添加了一个日志目录,禁止 QQ 写。
%AppData%\Tencent\Logs\
自定义 QQ 聊天记录目录
如果有需要变更 QQ 聊天记录目录失败,或者需要手动变更时。
编辑文件,如果文件不存在就创建一个
C:\Users\Public\Documents\Tencent\QQ\UserDataInfo.ini
将内容写入如下参考:
[UserDataImportSet]
NeedImport=0
OldVersion=
OldVerDataPathType=
OldVerDataPath=
OldQQInstallPath=C:\temp\903DB504.46618D74B1ECA_9.4.6.0_x86__a99ra4d2cbcxa\QQ
[UserDataSet]
UserDataSavePathType=2
UserDataSavePath=D:\Program Files (x86)\QQFILE
NewVersion=
Comments