Zeus Desktop 提供全面的浏览器指纹管理功能,允许每个分身呈现独特且一致的浏览器身份。这可以防止网站通过指纹关联来识别多个分身属于同一用户。
什么是浏览器指纹?
浏览器指纹是网站通过收集浏览器和设备的独特特征来识别和追踪用户的技术——即使不使用 Cookie 也能实现。这些特征包括:
- User-Agent 字符串
- 屏幕分辨率
- 已安装的字体
- WebGL 渲染器信息
- Canvas 渲染模式
- AudioContext 输出
- 硬件规格(CPU 核心数、内存)
- 时区和语言
当两个浏览器会话共享相同的指纹时,网站可以判断它们很可能属于同一用户——这会使独立分身失去意义。
指纹配置
可配置属性
随机指纹生成
点击**“随机生成指纹”**按钮,可以一键填充所有字段,生成一个真实且内部一致的配置。
生成器确保内部一致性:
- Windows 的 User-Agent 会自动匹配
Win32 平台和 Windows 字体
- macOS 的 User-Agent 会自动匹配
MacIntel 平台、devicePixelRatio: 2 和 macOS 字体
- WebGL 厂商/渲染器组合与所选操作系统匹配
- 所有值都来自真实常见配置的数据池
工作原理
Zeus 在两个层面应用指纹覆盖:
第一层:Chrome 启动参数
在 Chrome 启动前应用:
Chrome 启动后立即通过 WebSocket 连接到 CDP 调试端口进行注入:
反检测脚本详解
注入的脚本会在每个新文档(包括 iframe)中,在任何页面 JavaScript 执行之前运行。以下是每项保护的作用:
navigator.webdriver 移除
网站通过检查 navigator.webdriver 来检测自动化工具。此操作完全移除该标志。
Canvas 指纹噪声
向 Canvas API 输出添加确定性噪声。该噪声具有以下特点:
- 确定性 — 相同的种子始终产生相同的噪声(跨页面刷新保持一致)
- 不可感知 — 极微小的像素级变化,肉眼不可见
- 唯一性 — 不同的种子 = 不同的指纹
这通过让每个分身产生不同但一致的 Canvas 输出来防止 Canvas 指纹追踪。
WebGL 伪装
覆盖 WEBGL_debug_renderer_info 以报告自定义的 GPU 厂商和渲染器字符串。这是最强的指纹信号之一,因为 GPU 信息是高度设备特异的。
AudioContext 噪声
向 AudioContext.createAnalyser() 输出注入确定性噪声。音频指纹利用音频处理中的细微差异来识别设备。
字体检测保护
拦截字体测量查询并添加一致的变化,防止网站枚举你已安装的字体。
一致性准则
为了最大化反检测效果,确保分身配置内部一致:
随机生成按钮会自动处理所有一致性规则。建议先使用随机生成,然后根据需要微调特定值。
Canvas 和 Audio 保护开关
UI 提供两个便捷开关:
-
Canvas 保护 — 启用后,会向 Canvas 操作注入确定性噪声。这使你的 Canvas 指纹对每个分身唯一,同时在不同会话间保持一致。
-
Audio 保护 — 启用后,会向 AudioContext 操作注入确定性噪声。类似于 Canvas 保护,但针对基于音频的指纹追踪。
生成随机指纹时,两者默认开启。
验证你的指纹
启动分身后,可以使用以下网站验证指纹效果:
故障排除
指纹未生效
- 确保分身已配置指纹设置(检查配置对话框)
- 确认 Chrome 使用了正确的调试端口启动(查看日志)
- CDP 注入仅在 Chrome 正确启动时才能工作——检查 Chrome 启动错误
网站仍然检测到自动化
- 确认
navigator.webdriver 已被移除(在 DevTools 控制台中检查:navigator.webdriver 应为 undefined)
- 验证
window.chrome 存在(某些网站检查其是否缺失)
- 确保所有指纹值内部一致(参见上方一致性准则)
- 某些高级检测可能检查时序异常——指纹伪装有帮助但无法完美对抗所有检测方法
Canvas/WebGL 测试显示相同指纹
- 确保不同分身的
canvasNoiseSeed 不同
- 验证分身设置中已启用 Canvas 保护
- 关闭并重新启动浏览器——指纹注入在启动时进行