zxzvsdcj/ai-reverse-toolkit · Archived

fingerprint-bypass

>- 浏览器/客户端指纹分析与绕过方案(TLS/HTTP2/TCP/浏览器 4 层指纹检测与伪造)。基于 fingerprint-collector 项目的检测维度。 TRIGGER when: 用户提到反指纹、指纹检测、浏览器指纹、TLS指纹、JA3/JA4、HTTP2指纹、反爬虫检测、Cloudflare绕过、Akamai绕过、DataDome绕过、被风控了、请求被拦截、403/429错误、bot检测、headless检测。? DO NOT TRIGGER when: 只是普通的 JS 加密逆向(用 find-crypto-entry)、或补环境(用 env-patch)。

First seen Mar 24, 2026

Installation

$ npx skills add zxzvsdcj/ai-reverse-toolkit --skill fingerprint-bypass

Summary

浏览器/客户端指纹分析与绕过方案(TLS/HTTP2/TCP/浏览器 4 层指纹检测与伪造)。基于 fingerprint-collector 项目的检测维度。 TRIGGER when: 用户提到反指纹、指纹检测、浏览器指纹、TLS指纹、JA3/JA4、HTTP2指纹、反爬虫检测、Cloudflare绕过、Akama…

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from zxzvsdcj/ai-reverse-toolkit.

npx skills add zxzvsdcj/ai-reverse-toolkit

Browse all from zxzvsdcj/ai-reverse-toolkit

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License LICENSE
Default branch main
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 8,578 B
  • docs SUMMARY.md 692 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

fingerprint-bypass

对 $ARGUMENTS 进行指纹分析与绕过方案设计。

核心理念: 反指纹系统检查 TLS、HTTP/2、TCP/IP、浏览器 API 四层指纹的跨层一致性。单层伪造容易,四层自洽难——这是大多数方案翻车的根因。


四层指纹体系

Layer 1: TCP/IP 层

操作系统在 TCP 握手时暴露的特征,无法通过应用层伪造:

特征 Windows Linux macOS
TTL 128 64 64
TCP Timestamp 无 有 有
Window Size 65535 29200 65535
TCP Options 顺序 MSS,NOP,WScale,NOP,NOP,SACK MSS,SACK,Timestamp,NOP,WScale MSS,NOP,WScale,NOP,NOP,Timestamp,SACK,EOL

关键: TCP 层指纹由操作系统内核决定,应用层无法控制。UA 声称 Windows 但 TTL=64 → 立即矛盾。

Layer 2: TLS 层

TLS ClientHello 中的指纹:

指纹类型 组成 用途
JA3 ciphersuites + extensions + groups + ecpoint_formats 经典 TLS 指纹
JA4 协议版本 + SNI + cipher 数量 + extension 数量 + ALPN 新一代指纹

Chrome 特征:

  • 含 GREASE 值(0x0a0a, 0x1a1a 等随机值)
  • 扩展列表含 ECH (encryptedclienthello)
  • Chrome 116+ 扩展顺序随机化(JA3 不再稳定,JA4 更可靠)

Node.js 特征(暴露点):

  • 无 GREASE 值
  • cipher suite 列表与浏览器不同
  • 缺少 application_settings 等 Chrome 专有扩展

Layer 3: HTTP/2 层

HTTP/2 连接建立时的 SETTINGS 帧参数:

参数 Chrome Firefox Safari Node.js(默认)
HEADERTABLESIZE 65536 65536 — 4096
INITIALWINDOWSIZE 6291456 131072 — 65535
MAXHEADERLIST_SIZE 262144 — — —
WINDOW_UPDATE 15663105 12517377 10420225 不发送
伪头顺序 m,a,s,p m,p,a,s m,s,a,p m,a,s,p

关键: WINDOW_UPDATE 值是区分浏览器的最强信号,且几乎没有工具正确伪造。

Layer 4: 浏览器 API 层

JavaScript 可访问的 API 暴露的信息:

类别 检测项 自动化工具常见问题
自动化检测 navigator.webdriver Selenium/Puppeteer 默认 true
浏览器标识 window.chrome headless Chrome 缺少此对象
Canvas toDataURL() hash headless 渲染结果不同
WebGL WEBGLdebugrenderer_info SwiftShader / Mesa 暴露 headless
Audio AudioContext 输出 不同硬件 LSB 不同
权限 Permissions.query() 自动化工具返回 denied
CDP 检测 错误堆栈中的 CDP 痕迹 Puppeteer 会泄露 CDP 调用栈
插件 navigator.plugins headless 通常为空

分析流程

Step 1: 识别检测系统

常见反指纹服务:
  Cloudflare → 检查 cf-ray header、Turnstile 验证
  Akamai → 检查 _abck cookie、sensor_data 请求
  DataDome → 检查 datadome cookie、interstitial 页面
  PerimeterX → 检查 _px cookie
  
判断方法:
  1. 查看 403/429 响应头中的特征
  2. 搜索页面 JS 中的特征字符串
  3. 分析 cookie 名称和 JS 请求模式

Step 2: 采集当前指纹

如果可以部署 fingerprint-collector,用它做全面自测:

# 部署 fingerprint-collector
git clone https://github.com/zhizhuodemao/fingerprint-collector.git
cd fingerprint-collector && pip install -r requirements.txt
sudo ENABLE_TCP=1 python app.py

# 用你的工具/脚本访问 https://localhost:8443
# 查看 /api/analysis 获取检测报告

无法部署时,可以用公开测试站点:

  • tls.browserleaks.com — TLS 指纹
  • browserleaks.com/canvas — Canvas 指纹
  • browserleaks.com/webgl — WebGL 指纹

Step 3: 一致性诊断

对照以下矛盾检测表,排查不一致:

检查项 一致性规则 常见矛盾
UA ↔ TLS UA 声称的浏览器与 JA3/JA4 匹配 Node.js 的 TLS 指纹但 UA 写 Chrome
UA ↔ HTTP/2 SETTINGS 参数与 UA 浏览器一致 HTTP/2 用默认值,UA 写 Chrome
UA ↔ TCP TTL 与 UA 声称的操作系统一致 Linux 服务器(TTL=64)但 UA 写 Windows
WebGL ↔ UA GPU renderer 与声称的平台一致 SwiftShader(headless 标志)
时区 ↔ IP JS 时区与 IP 地理位置一致 UTC+8 但 IP 在美国
语言 ↔ IP navigator.languages 与 IP 区域一致 中文语言但美国 IP

Step 4: 制定绕过方案

根据诊断结果选择方案:

场景 A: Python 请求被拦截

方案 1(推荐): curl_cffi — 模拟真实浏览器 TLS + HTTP/2 指纹
  pip install curl_cffi
  from curl_cffi import requests
  r = requests.get(url, impersonate="chrome")
  
方案 2: tls_client — Go 实现的 TLS 指纹库
  pip install tls_client
  session = tls_client.Session(client_identifier="chrome_120")
  
方案 3: 自定义 TLS — 使用 PyOpenSSL + h2 精确控制
  需要手动设置 cipher suites、extensions、HTTP/2 SETTINGS

场景 B: 自动化浏览器被检测

方案 1: Patchright(推荐) — Playwright 反检测分支
  js-reverse-mcp 已内置 Patchright 引擎
  
方案 2: undetected-chromedriver — Selenium 反检测
  pip install undetected-chromedriver
  
方案 3: Playwright + stealth 插件
  npm install playwright-extra puppeteer-extra-plugin-stealth
  
关键配置:
  - 使用持久化 user-data-dir(保持登录态 + cookie)
  - 不使用 headless 模式(或使用 new headless)
  - 注入 stealth 脚本消除自动化痕迹

场景 C: Node.js 补环境被识别

参考 env-patch skill 的 references/fingerprint-consistency.md
重点: 
  - navigator.webdriver = false(正确的属性描述符)
  - window.chrome 对象完整性
  - Canvas/WebGL 返回有意义的值
  - AudioContext 行为正确

伪造工具对比

工具 TLS HTTP/2 TCP 浏览器API 适用场景
curl_cffi ✅ ✅ ❌ ❌ 纯 API 请求
tls_client ✅ ✅ ❌ ❌ 纯 API 请求
Patchright ✅ ✅ ❌ ✅ 需要执行 JS
undetected-chromedriver ✅ ✅ ❌ ✅ Selenium 场景
真实浏览器 + 代理 ✅ ✅ ✅ ✅ 最高拟真度

TCP 层: 除非运行在与 UA 声称一致的操作系统上,否则 TCP 层不可伪造。这是"终极检测"——如果目标做 TCP 层检测,必须使用对应 OS 的机器。


反模式

  • 不要只改 User-Agent — UA 是最容易检查也最没价值的指纹,改 UA 不改 TLS/HTTP2 等于自曝。
  • 不要混用不同浏览器的特征 — Chrome 的 TLS + Firefox 的 HTTP/2 = 世界上不存在的客户端。
  • 不要在 Linux 上声称 Windows — TCP TTL 会暴露。
  • 不要忽略 HTTP/2 WINDOW_UPDATE — 这是最被忽视但最具区分度的指纹。
  • 不要用 requests 库直接请求 — Python requests 的 TLS 指纹是独特的,任何检测系统都能识别。

完成标准

指纹绕过结果:
- 目标站点:$ARGUMENTS
- 检测系统:[Cloudflare | Akamai | DataDome | 其他]
- 矛盾维度:[TLS | HTTP/2 | TCP | 浏览器API | 跨层不一致]
- 绕过方案:[curl_cffi | Patchright | 其他]
- 验证结果:请求返回 200 + 正常业务数据(非验证码/拦截页)

References

文件 何时读取
references/tls-fingerprint.md 需要深入了解 JA3/JA4 指纹构造和伪造细节
references/http2-fingerprint.md 需要精确匹配 HTTP/2 SETTINGS 和 WINDOW_UPDATE
references/browser-fingerprint.md 需要补全浏览器 API 层指纹(Canvas/WebGL/Audio 等)