更新:2024-10-13 18:35:05
目前已知本文无法解决谷歌内置构建的病毒扫描,除非关闭安全浏览,但是关闭安全浏览会把所有文件视为风险直接拦截
此时除了 ungoogled-chromium
彻底删掉谷歌生态的方案,还有一个方案 supermium
真神降临 supermium 方案特点
- 保留所有谷歌生态系统,可以登录谷歌账号同步浏览器数据
- 删除了傻逼谷歌所有内置安全机制,源码上删净了
安全浏览所有功能模块机制
、内置在浏览器的病毒扫描
- 无需设置,安装完开箱即用,不用去跟谷歌浏览器的内容审查扳手腕了
- 恢复对旧版系统的支持,如 windows 2000/xp/7/8/8.1 都能运行,当然部分功能肯定是受到影响的,毕竟是有些是依赖于系统提供的
- 支持安装时使用便携模式,不写后台服务、注册表信息,纯绿色
- 也是开源方案,代码可审计,GitHub:https://github.com/win32ss/supermium/
我强力推荐这个方案,唯一缺点是,这个项目上游的进度是落后谷歌正式版的1-3个大版本
如,现在最新正式版是 v129.x
supermium 的最新构建版本是 v126.x
Supermium
https://www.alipan.com/s/WR1cJVAhTvt
提取码 5pf5
也可自行去 GitHub 下载
更新:2024-10-13,因为我的习惯,每次更新文章都是对最初发布内容的补充,也就是最原始的文章在底部,所以可能很多小伙伴会看晕了不知道到底要怎么看,从文章底部发布的原始文章往上看即可
我会抽空整合重写这篇文章,删除累赘部分,只写成一个整体部分
更新:2024-06-13,使用了更优雅的方法,我在 Linux 下克隆了部分 Chromium 源码,自己重新编译了该文件
链接见文章末尾
再根据文章内容替换相应文件,修改注册表项,重启浏览器实时生效
理论支持支持谷歌 Chrome/Chromium 全系列版本和未来发布的版本,包括不同发行渠道:稳定版、测试版、开发版、金丝雀版
并在以下版本中验证通过
Chrome v99/102/109/111/123/124/125 x64
Chromium v109/125 x64
由于愚蠢的谷歌部分开发者总是试图帮用户做决定,安全浏览这个 fuck 功能设计,当在新版 chrome 关闭安全浏览,反而会将所有下载给拦截,需要手动确认
过度限制的安全策略实际上并不能提高安全性,如果他们需要非常安全,请在自己的电脑上设置,不要强制帮用户决定
谷歌既然提供了一个禁用安全浏览的开关,那么你必须按这个开关做,当用户禁用这个开关意味对自己的安全负责
而不是一个 UI 开关,禁用之后所有下载全部拦截,这不叫关闭
这是用户的电脑,不是谷歌的电脑。我们用户,做决定,不要Google为我做决定
这安全浏览确实侮辱了很多用户的智商,我关闭了安全浏览,每次下载内容时浏览器都会通知我,即使我禁用了安全浏览,禁用安全浏览已经表明用户不要任何通知或警告,因为用户明确手动禁用了安全浏览
反而因为关闭安全浏览来不安全来阻止下载,何等荒谬
设计这个功能和逆天逻辑的开发者内心有多不安全,环境有多恶劣?电脑是不是全部虚拟化+装了一坨安全软件,密码64位以上随机生成大小小写特殊字符英文?
再次 fuck google
实现了如下目标:
1>标记所有文件后缀为安全无风险(包括了未发布的文件后缀类型)
2>允许用户决定所有文件类型是否自动打开(选择权交还用户)
3>关闭所有文件安全检查、禁止下载时向 Google 服务器发送 ping 请求(需要配合文中的修改 hosts 使用)
4>禁止报告压缩文件类型(避免进一步检查行为)
5>无法关闭谷歌浏览器内置构建的反病毒扫描模块,就是下载文件完成后要卡几秒才能完成,因为此时正在进行病毒扫描(跟多线程下载无关),这个模块部分是独立于文件安全策略之外的,另外触发的,所以即使安全浏览的所有检查关闭了,也会触发这个内置病毒扫描
环境:
Ubuntu 22.04.2 LTS
至少 7 G 的空闲空间(du -sh ~/chromium = 6.2 GB,再加上其他附加工具依赖,还会多一些)
protoc v27.1
- 获取
download_file_types.pb
的原型源码文件download_file_types.proto
,并提前修改好
https://source.chromium.org/chromium/chromium/src/+/main:components/safe_browsing/content/common/proto/download_file_types.proto
备注:可能需要自备魔法,没有也可以直接使用下面修改好的
修改相关选项default_file_type
字段定义了默认的文件类型,这是是无,以便使用修改过的默认值ping_setting
字段定义了 ping 类型,这里肯定改为 1
,取值有
SAMPLED_PING = 0;
NO_PING = 1;
FULL_PING = 2;
DangerLevel
定义了文件危险级别,这里肯定改为 0
取值还有 1
:表示文件可能危险,这时候已经有提示了,需要用户明确操作才能继续下载,取值 2
,危险文件,浏览器会阻止下载或显示警告提示,fuck chrome
NOT_DANGEROUS = 0;
ALLOW_ON_USER_GESTURE = 1;
DANGEROUS = 2;
AutoOpenHint
定义了自动打开行为,这里改成 1
,允许用户自己选择下载完后是否自动打开,取值还有 0
,强制不允许
DISALLOW_AUTO_OPEN = 0;
ALLOW_AUTO_OPEN = 1;
修改后 download_file_types.proto
最终源码如下
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package safe_browsing;
message DownloadFileType {
optional string extension = 1;
optional int64 uma_value = 2;
optional bool is_archive = 3 [default = false];
enum PingSetting {
NO_PING = 1;
}
optional PingSetting ping_setting = 4 [default = NO_PING];
enum DangerLevel {
NOT_DANGEROUS = 0;
}
enum AutoOpenHint {
ALLOW_AUTO_OPEN = 1;
}
enum PlatformType {
PLATFORM_TYPE_ANY = 0;
}
message PlatformSettings {
optional PlatformType platform = 1 [default = PLATFORM_TYPE_ANY];
optional DangerLevel danger_level = 2 [default = NOT_DANGEROUS];
optional AutoOpenHint auto_open_hint = 3 [default = ALLOW_AUTO_OPEN];
optional uint64 max_file_size_to_analyze = 4 [default = 18446744073709551615];
optional int64 file_weight = 5 [default = 0];
}
repeated PlatformSettings platform_settings = 5;
enum InspectionType {
NONE = 0;
}
optional InspectionType inspection_type = 6 [default = NONE];
}
message DownloadFileTypeConfig {
optional uint32 version_id = 1;
optional float sampled_ping_probability = 2 [default = 0];
repeated DownloadFileType file_types = 3;
optional DownloadFileType default_file_type = 4;
optional uint64 max_archived_binaries_to_report = 5 [default = 0];
}
开始编译
安装基本依赖
apt install protobuf-compiler build-essential git python3 python3-pip curl
mkdir protoc && cd protoc
wget https://github.com/protocolbuffers/protobuf/releases/download/v27.1/protoc-27.1-linux-x86_64.zip
cp ./bin/protoc /usr/bin/
获取 Chromiu 只关于 download_file_types
部分的源码
mkdir
git clone --depth 1 https://chromium.googlesource.com/chromium/src.git
cd ~/chromium/src/components/safe_browsing/content/common
protoc download_file_types.proto --descriptor_set_out=download_file_types.pb
然后 sz download_file_types.pb
下载到本地电脑就好了
编译时遇到的问题参考链接
谷歌官方 Linux 下构建 Chromium 指南
https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md
更新:2024-06-06
奇怪了,我在 Chrome Stable x64 123.0.6312.123 版本上发现了 download_file_types.pb
文件存在,且父目录为 65
,看起来该机制仍然存在并持续生效?如果是的话,我收回之前不适用 v117+ 版本的话
经过测试,对于 Chrome v123.0.6312.123 x64 稳定版,该方法仍然有效,但截止到目前最新稳定版为 v125.x,盲猜依然有效
对于较新版的chrome,如v123,可以访问 chrome://components
手动下载官方的 File Type Policies 文件
另外强烈推荐一个方案,一个基于谷歌最新 Chromium 源码自动构建的谷歌浏览器 Chromium(非官方构建)
自动实时同步上游 Chromium 最新 commit 源码进行全自动构建打包,移除了所有依赖于谷歌网络服务的功能和组件,减少了与谷歌服务器的通信,提升了用户隐私,同时增加更多功能和新特性(默认不启用)
我分享保存到了国内网盘一份,也可以自行在 GitHub 项目下载
https://www.alipan.com/s/6CRtfQDmi1Z
提取码 10et
ungoogled-chromium:尽量保留了与默认 Chromium 相同的使用体验,旨在成为一个直接的替代品。
因为即使是 Chromium,也包含谷歌的各类服务集成,如同步、浏览数据收集、谷歌账户登录等,作为谷歌的开源浏览器项目,它的默认设置和服务集成都与谷歌的生态系统紧密相连
ungoogled-chromium 主要针对那些希望在使用 Chromium 浏览器的同时,避免与谷歌服务关联、提高隐私和控制权的用户。而 Chromium 本身则是谷歌开发和维护的开源项目,与谷歌的服务生态系统紧密集成
项目自述
ungoogled-chromium
一种去除谷歌网络服务依赖的轻量化方法
目标
按重要性降序排列(即最重要的目标在最前):
1. ungoogled-chromium 是不依赖于谷歌网络服务的 Google Chromium。
2. ungoogled-chromium 尽可能保留默认的 Chromium 使用体验。与其他有自己浏览器愿景的 Chromium 分支不同,ungoogled-chromium 本质上是 Chromium 的替代品。
3. ungoogled-chromium 具有增强隐私、控制和透明度的调整。然而,几乎所有这些功能都必须手动激活或启用。更多详情请参见功能概述。
4. 在目标发生冲突的情况下,应该优先考虑更重要的目标。
项目地址:
https://github.com/ungoogled-software/ungoogled-chromium
这些高级特性自行进入 chrome://flags
查看,例如:屏蔽谷歌浏览器全屏模式下的按 ESC 退出提示和按键、移动到边缘时 按 X 退出提示,按 F11 之后完全全屏,只能按 F11 再次退出,
Hide Fullscreen Exit UI
Hides the "X" that appears when the mouse cursor is moved towards the top of the window in fullscreen mode. Additionally, this hides the "Press F11 to exit full screen" popup. ungoogled-chromium flag. – Mac, Windows, Linux, ChromeOS, Fuchsia, Lacros
#hide-fullscreen-exit-ui
再如,关于智障安全浏览的功能细节设定及屏蔽
No Pings
Don't send hyperlink auditing pings. Chromium feature, ungoogled-chromium flag. – Mac, Windows, Linux, ChromeOS, Android, Fuchsia, Lacros
#no-pings
这里选择 Enable 就能屏蔽安全浏览发送超链接审核的 ping
更多增强功能可以在 flags 界面搜索关键字 ungoogle
更新:2024-02-14,修改了一下注册表键值写法,只导入到 USER 根键,使其生效优先级为最高
更新:
2023-10-22 Chrome v117 + (含 117) 增强了安全浏览功能,并且部分安全机制变更,本文内容不支持 Chrome v117+ 版本
具体见
https://mp.weixin.qq.com/s/_O5p9bdIy7GSi6ddn8lnVg
如何关闭增强型安全浏览(需魔法):
https://myaccount.google.com/account-enhanced-safe-browsing
2023-08-22 ,已知 当 Ctrl + Shift + Delete 勾选所有清除数据选项,未加固情况下会清除后缀名安全策略文件,如果设置了权限加固可无视防止 chrome 修改文件名后缀安全策略文件
重要更新:2023-5-11彻底解决这个问题,加白所有在数据库里的后缀,任何网络环境下,都不会拦截了,但还是建议 hosts 屏蔽相关安全浏览功能的域名
更新: 2023-01 关于安全浏览这多余功能,泄漏隐私、狗拿耗子多管闲事的行为,直接 f**k
修改系统 hosts 文件,路径:C:\Windows\System32\drivers\etc\HOSTS
(自行解决 Windows 自带安全机制对 Hosts 文件的保护),把下面内容追加到文件末尾
127.0.0.1 sb-ssl.google.com
127.0.0.1 safebrowsing.googleapis.com
127.0.0.1 safebrowsing.clients.google.com
127.0.0.1 safebrowsing-cache.google.com
如果使用 clash,也可以加入到拦截规则
- 更新:2022-3-21 经过测试,还是有部分下载出现的拦截警告,调试抓包谷歌浏览器,发现安全浏览开关是个摆设,无论设置的值是什么,下载文件时始终会向 sb-ssl.google.com 这个域名发送文件相关信息(md5/文件大小/类型/下载地址/......)
- 更新:2022-3-13 发现 Chrome 升级后也会保留之前修改的文件
- 更新:2021-10-21 增加懒人一键修改包,详见文章内容的第七步,下载后解压修改好的文件,到文章说的路径,进行覆盖替换,并双击导入注册表文件,关闭浏览器重新打开立即生效。
另附:谷歌最新正式稳定版 x64 位 离线安装包 永久静态下载直链(谷歌会实时更新,链接始终指向最新正式版):
https://dl.google.com/tag/s/installdataindex/update2/installers/ChromeStandaloneSetup64.exe
以上地址转载自:
https://www.jianshu.com/p/9863974cd1b4
或者也可以在异次元这里下载,版本更全,且也全是官方链接:
https://www.iplaysoft.com/tools/chrome/
环境:92.0.4515.159 / 96 / 99 / 109 (正式版本) (64 位) (cohort: Stable)
系统:win7 SP1 x64 专业版
目标:关闭自带下载器的任何安全措施:
- 下载前的 网站的 URL 安全检测
- 下载文件的 URL 安全检测
- 下载文件的后缀名安全提示、警告/此类型文件对计算机有害,是否保留还是舍弃
- 下载完执行安全病毒扫描,导致卡一段时间才能最终完成
- 自定义允许指定后缀/所有后缀文件名下载完自动打开
谷歌浏览器越来越臃肿了,功能上也是越来越一意孤行了,活脱脱的浏览器寡头,希望火狐加油呀。
开始前,你们可以测试下这些链接的拦截情况:
测试 URL 样例 1,崩坏3 桌面服客户端下载器,访问 https://bh3.mihoyo.com/main ,点击 PC 下载,下载直链:https://bundle.bh3.com/public/PC/Bh3_release_2.23.2.0.exe ,触发拦截
测试 URL 样例 2,QQ 电脑管家在线下载器,进入 https://guanjia.qq.com/product/weixin/ 页面,点击 微信、管家一键下载,触发拦截,或本页下载直链:https://pm.myapp.com/invc/xfspeed/qqpcmgr/download/QQPCDownload70580.exe ,应该不触发
测试 URL 样例 3,Microsoft Edge 浏览器在线下载器,访问 https://www.microsoft.com/en-us/edge/download?form=MA13FJ ,点击 Download for Windows 11 / 10 ,触发拦截,本页面直接点击下载直链:https://c2rsetup.officeapps.live.com/c2r/downloadEdge.aspx?platform=Default&source=EdgeStablePage&Channel=Stable&language=zh-cn&brand=M100,应该不触发
测试 URL 样例 4,逍遥模拟器安装包,访问 https://www.xyaz.cn/,点击 立即下载 → 个人版,应该触发,本页面点击下载直链:https://download.microvirt.com/download/XYAZ-Setup-8.1.2-ha12ab0d7e.exe,应该不触发
可以看到 Chrome 安全机制比较复杂,检测文件后缀、下载网页、检测了类似 referer header 值里面的域名,因为当 referer 为空去下载风险文件直链,是不触发的,或者 referer 里面的域名没有命中风控
做进一步测试,使用 CORS Unblock
扩展移除拦截网站的 Referer 和 Origin 请求 header,确定是 referer 问题
简单测试结束,开始修改
- 先完成一些基础前提条件,操作系统:
关闭谷歌浏览器下载完文件,自动强制执行的病毒扫描 (系统级)
说明:关闭操作系统自带的下载附件安全扫描,这个是系统级内置的,许多浏览器会下载完之后根据系统的设置判断是否下载完进行病毒扫描。导致下载完之后文件要等待一段时间才真正的好了(取决你文件大小),特别是一些小文件,每个都要卡几秒,恶心人,一个浏览器好好做自己本分的事,安全让别的软件处理
注册表定位到如下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Attachments
新建一个名为
ScanWithAntiVirus
,数据类型为 DWORD 32位的键值,值为1,基数类型,十六进制,保存后重启系统生效,这里可以先不重启,把下面的操作都做完了再重启,如果本身就已经有这个键值了,就修改键值内容是为1
关闭下载完之后,直接加载部分后缀的文件时触发的安全扫描(系统级)。
Win 键 + R,打开运行对话框,输入
inetcpl.cpl
,打开Internet选项,点击安全
选项卡,选择 Internet 区域,选择自定义级别。在弹出的二级界面中,找到
加载应用程序和不安全的文件
,把这个选项改成启用
,并确定保存,如图:
- 操作系统配置完了,接下来就是对谷歌进行一些设置:
谷歌浏览器桌面快捷方式追加如下启动参数:
- 允许加载不安全脚本/内容【关闭不安全提示直接加载】,关闭 Chrome 安全浏览的下载保护:
--allow-running-insecure-content --safebrowsing-disable-download-protection
- 修改注册表,定位到
[HKEY_CURRENT_USER\SOFTWARE\Policies\Google\Chrome]
如果没有 Google 及 Chrome 子项,就自己新建一个,或者直接使用成品的注册表文件导入
新建一个DWORD32(32-位)值
,名字为SafeBrowsingProtectionLevel
,值内容为1
如果你使用魔法上网,如 SwitchyOmega 之类代理的浏览器插件,或者代理客户端开启系统代理形式,值为 1 即可,纯国内网络使用场景,也是值为 1 即可 这一步可以跳过,直接去用文章末尾提供修改好的文件去替换
下载这个 Winhex 工具
WinHex-20.8-x86-x64.exe
https://www.alipan.com/s/Dbk8wge9TGR
提取码: re48或者任意能对文件数据进行十六进制编辑的工具。
打开资源管理器,地址栏输入这个路径并回车访问%localappdata%\Google\Chrome\User Data\FileTypePolicies\
,会看到该路径下面,只有一个数字命名的目录,目前博文使用的 v92.x Chrome,该目录名为 43,随着版本更新,可能会变化增加,这里不管它什么命名,点进去,可以看到有一个名为download_file_types.pb
的文件,我们先复制一份,直接原地粘贴,就会生成一个名为download_file_types - 复件.pb
的同样文件,这个作为备份打开 WinHex 工具,点击左上角的 文件 菜单,选择打开,选择
download_file_types.pb
文件,使用快捷键Ctrl + F
打开搜索工具,输入你想要放行的文件后缀,注意只能一次次改,所以先输入第一个,比如这里输入exe
,然后点击确定,WinHex会自动定位到 exe 扩展名位于文件中的位置,可以看到 exe 的Ascii 代码是65 78 65
,65 对应 e ,78 对应 x ,65 对应 e ,一 一对应,这里我们只需要把代表 exe 的 Ascii 码改为 6 个数字 0 即可,双击 定位到的开头数字6
,,此时进入了编辑状态,连续输入 6 个数字 0,即改成00 00 00
,然后 快捷键Ctrl + S
保存,点击确定就行了此时还没完,我们要防止谷歌再次对文件进行更新/修改/删除操作,只允许读取
在该文件的当前目录按住 Shift + 右键,打开 cmd,执行
icacls download_file_types.pb /grant:r everyone:R
注意该操作需要管理员权限的 cmd,如果没有,请先提权再执行,这样即使 Ctrl + Shift + Delete 清除数据,该文件也不会被修改了
如果还想修改更多,比如 pdf,也是依葫芦画瓢,想知道什么后缀会被谷歌浏览器给拦截,详情参见这个链接
https://chromium.googlesource.com/chromium/src/+/refs/heads/main/components/safe_browsing/content/resources/download_file_types.asciipb
注意以上链接可能需要魔法才能访问。
我看了下,截止到博文发表日期,谷歌统计了 387 个文件后后缀,搜索 ALLOW_ON_USER_GESTURE
关键字,就是那个总是要用户确认是保留还是确认的文件后缀,占了199个
进入 %localappdata%\Google\Chrome\User Data\FileTypePolicies\
,这里会有个数字编号的目录,点进去,复制文件替换掉 download_file_types.pb
导入注册表之后,需要 访问 chrome://policy/
点击重新加载政策,手动刷新策略才能实时生效
- 倒回去测试文章开头提供的下载链接,检查拦截情况,应该全部秒下载无拦截和提示
- 如有问题评论区留言
下载地址
Fuck_Google
https://www.alipan.com/s/fiDzCAFDGHF
提取码 r4f0
再次 fuck Chrome,不务正业:
查找有害软件,Chrome 可以查找您计算机上的有害软件并将其移除 功能?
向 Google 报告在此次清理期间在您计算机中发现的有害软件、系统设置和进程的相关详情 功能?
安全浏览 功能?
tg联系你了,可以加里面的微信QQ联系
测试通过一次之后能否免审核评论
评论测试
不是,是因为有审核,我没加提示
评论发不出来....是不是有一些文字被屏蔽了
好像回复不了...我重新发个评论吧...就是文件下载好以后,明显看到进度条已经跑满,但是却还是卡在100%(明显是在验证文件),和开启安全浏览时的状态一样.........
就是下载好文件后明显看到进度条已经跑满,却还要等待4-5秒钟后文件才能使用。跟开启安全浏览时状态一样...
大佬你飞机号怎么是机器人.....。。。。
就是文件下载好了以后,明显可以看到进度条已经跑满。但是却还要等待4-5秒钟经过一个验证,文件才能用,跟开启安全浏览时的状态一样..............
还是有文件验证....,替换好合并注册表后下载文件确实没有提示了,但是下载好的文件还是会经过安全验证几秒钟才可用....
具体是什么意思嗯?我建议你用那个 Un-google 的chromium构建项目,一步到位,下载完的文件我这边测试没有复现,可能是别的地方没弄好,方便的话可以联系下 tg: @szkznBot,我这是跟谷歌浏览器杠上了
实测按教程1-3操作后,运行修改好的注册表文件且用全部后缀加白名单的文件进行替换,所有测试下载仍被拦截。求更新啊
什么版本的Chrome
蓝奏盘有密码啊~~~
啊,没注意,已更新内容加入了外链密码,密码:b15hsf
基本不弹了,但还是会有。😭
还没重写内容,我先鸽一会,抽空再更新内容
牛,找了这么久,终于发现解决方法了,烦人的下载警告终于没有了
隔一段时间我再更新,把做好的成品分享出来,包括注册表修改好的成品文件,一键双击导入,修改好的download_file_types.pb