介绍:

这是一款在浏览器上非常流行的视频/音频下载插件。激活是<涉嫌广告删除>
图上传不了???
激发看代码的冲动
License 激活机制:
核心:
-
- JWT (JSON Web Token) - 基于 token 的授权系统
-
- ECDSA P-256 - 椭圆曲线加密签名,确保 token 无法伪造
-
- 公钥验证 - 扩展内置公钥,只能验证不能签发
激活流程
用户访问激活页面并输入激活码
↓
网页触发 "activate" 自定义事件
↓
injected/activate.js 监听事件并提取激活码
↓
通过 chrome.runtime.sendMessage 发送到 Service Worker
↓
Service Worker 请求 https://v10.downloadhelper.net:443/v2/entitlements/activate
↓
服务器验证激活码并返回签名的 JWT token
↓
扩展使用内置公钥验证 JWT 签名
↓
验证成功后存储到 chrome.storage.local
↓
解锁 Premium 功能
安全机制
- 非对称加密 - 只有服务器私钥能签发有效 token
- 扩展 ID 哈希白名单 - 防止克隆版本
- HTTPS - 所有通信加密
- 代码混淆 - 防止逆向工程
- 服务器端验证 - 关键逻辑不在客户端
120分钟限制
对免费用户 2小时(120分钟)冷却时间,限制 HLS/MPD 和 YouTube 下载频率。
实现位置
文件: service/main.js
函数: async function Ng(e,t,n)
时间常量: let a = 7200 * 1e3 = 7,200,000 毫秒 (2小时)
每次成功下载后,用文件(持久)存储计时,位置:C:\Users\<用户名>\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\lmjnegcaeklhafolokijcfjliaokphfk\000003.log <- 是一个 LevelDB 数据库
检查逻辑:
是否为 Premium,是否过了2小时
意外发现:
在检查逻辑时在 async function Yh() 调用 getPlatformInfo() 来获得OS信息, Linux 和 OpenBSD 用户自动有 Premium 权限。
两条路
1) 绕过 7200 秒限制

找到 7200 , let a = 0,
2)添加 Premium 待遇,所有浏览器生效

找到第二个 async function Yh() , 添加 OS 进来,比如:win, mac
总结:
感谢软件作者,给开源系统免费使用这个插件。在商业 OS 中,可以使用 Linux 虚拟机,完全合法,不违反任何条款,自动获得 Premium 待遇。
<涉嫌广告删除>
写这篇文章针对 goofish 卖 "盗版"