Chrome 提示停用开发者模式扩展程序解决方法

解决方法: 找到 chrome.exe 的文件位置

- 下载下面的文件:https://download.csdn.net/download/weixin_40013817/15814962
- 将
version.dll复制到当前目录,重新启动chrome

这个提示是什么
Chrome 从 2018 年左右开始,对以「开发者模式」加载的扩展(也就是通过 加载已解压的扩展程序 装进来的、不是从 Chrome 商店安装的)在每次启动时弹一个警告条,文案是「请停用以开发者模式运行的扩展程序」。
弹这个是有理由的。商店里的扩展要经过 Google 的审核,且更新受商店控制;而通过开发者模式加载的扩展是本地文件夹,内容可以被任意程序修改。历史上有过一类攻击:恶意软件把一个扩展目录写到磁盘上,然后修改 Chrome 的配置把它以开发者模式加载进来,从此就能读取你所有网站的数据(扩展的权限比页面脚本大得多,可以跨域读写、拦截请求、读 cookie)。这个警告条的作用就是让用户注意到「有一个非商店来源的扩展在运行」。
会遇到它的场景通常是三类:
- 自己在开发扩展。这是它设计上的正常目标用户。
- 装了商店没有的扩展。被下架的、或者国内访问不了商店只能手动装的。
- 装了 crx 修改版。把商店扩展解包改过再加载的。
关于正文这个方法的说明
正文的做法是往 Chrome 的安装目录放一个 version.dll。技术上这利用的是 Windows 的 DLL 搜索顺序:进程加载一个 DLL 时,如果不是已知 DLL 或者没有指定完整路径,Windows 会优先在可执行文件所在目录查找。version.dll 本来是系统 DLL(在 C:\Windows\System32 下),把一个同名文件放在 chrome.exe 旁边,Chrome 启动时就会加载这个而不是系统的那个。这个自制的 DLL 会转发所有正常的 API 调用给真正的系统 DLL,同时插入自己的代码去 patch 掉 Chrome 弹警告的那段逻辑。
这类技术叫 DLL 劫持(DLL hijacking / proxy DLL),是个成熟的做法,被大量「去广告」「解锁功能」的补丁使用。
我需要明确说清楚它的风险,因为这一步的代价和收益比很不对等:
你把一个来源不明的二进制文件注入到浏览器进程里。 这个 DLL 会在 Chrome 的进程空间内执行任意代码,权限等同于 Chrome 本身——它能读你所有标签页的内容、读 cookie 和已保存的密码、发起任意网络请求,而且这些行为不会触发任何扩展权限提示,因为它不是扩展,是进程内的原生代码。
这比它要解决的问题(一个可以点掉的警告条)严重得多。而且从文件分享站下载的 DLL 无法验证内容——它可能只做了 patch 那一件事,也可能顺便做了别的,你没法确认。
如果确实要走这条路,最低限度应该做的是:
:: 计算文件哈希,和可信来源公布的值比对
certutil -hashfile version.dll SHA256
以及把它扫一遍(VirusTotal 或本地杀软)。但即便这样,判断依然是不充分的——针对性的 patch 工具本来就常被杀软误报,报和不报都说明不了什么。
我推荐的替代做法
有几种不需要往浏览器里注入代码就能解决的路径,按推荐程度排:
做法一:直接点掉那个警告条
那个提示是一个可关闭的气泡,点右上角的 × 就消失了,扩展照常工作。它每次启动 Chrome 会再出现一次,但点一下的成本很低。
如果你只是觉得它烦,这就是零成本的解法。
做法二:把扩展打包成 crx 并加进策略白名单
Chrome 支持通过企业策略(Enterprise Policy)指定允许强制安装的扩展,走这条路的扩展不会有开发者模式警告。步骤:
- 在
chrome://extensions里点打包扩展程序,选扩展目录,生成.crx和.pem(私钥,保管好,之后更新扩展要用同一个)。 - 拿到扩展 ID(打包后加载一次就能在扩展页面看到)。
- 在注册表里配
ExtensionInstallAllowlist和ExtensionSettings策略。
注册表路径(需要管理员权限):
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
这个方法是 Google 官方支持的、给企业环境准备的机制,不涉及任何二进制修改。缺点是配置繁琐,而且如果你只是临时用一下扩展,成本偏高。
做法三:用一个专门的浏览器 profile 跑扩展
新建一个独立的 Chrome 配置目录专门装开发者模式扩展,日常浏览用另一个:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir="D:\chrome-ext-profile"
做成一个快捷方式,需要用那个扩展时打开它。好处是:警告条只在那个 profile 里出现(你也不在意),而日常用的 profile 保持干净。而且这个隔离本身有额外价值——开发者模式的扩展有很大权限,把它和你日常登录了各种账号的 profile 分开是个好习惯,即便没有这个警告也值得这么做。
做法四:用支持这个场景的浏览器
Edge、Brave 这些 Chromium 内核的浏览器对开发者模式扩展的提示策略不完全一样(Edge 的警告更温和)。同一个扩展目录在 Edge 里加载能省掉这个烦恼。Firefox 的临时扩展加载也没有持续性的警告条。
如果那个扩展是你日常必须用的,换个浏览器承载它比修改浏览器二进制更划算。
做法五:找商店里的替代品
这一条最直接:确认一下商店里有没有功能相当的扩展。很多人手动装扩展是因为最初找到的是某个 GitHub 项目,其实商店里有同类。商店版本经过审核、自动更新、也没有警告条。
国内访问不了 Chrome 商店的情况下,可以用 Edge 的扩展商店(microsoftedge.microsoft.com/addons)——它兼容 Chrome 扩展,且在国内可访问。装在 Chrome 上的方法是先在 Edge 里装好,把扩展目录拷出来,但那样又回到开发者模式了;更简单的是干脆用 Edge。
顺带说一个相关的坑
Chrome 还有另一个类似的提示:「已停用一个可能已损坏的扩展程序」。这个和开发者模式无关,是因为 Chrome 检测到扩展的文件内容和它记录的签名不匹配(可能被杀软修改过、或者磁盘错误)。
这个提示不能靠点掉解决,扩展是真的被停用了。处理办法是删掉重装。如果反复出现,可能是某个安全软件在修改扩展文件,把 Chrome 的扩展目录加进它的排除列表。
扩展目录的位置(Windows):
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions
macOS:
~/Library/Application Support/Google/Chrome/Default/Extensions
里面按扩展 ID 分目录,每个目录下按版本号分子目录。想备份某个扩展(尤其是被下架前想留一份)就是拷这个目录,之后用开发者模式加载它——这又绕回了本文的话题,所以配合做法三的独立 profile 用最合适。

还没有留言,来发表第一条吧~