warterbili/PerimeterX_RE

GitHub: warterbili/PerimeterX_RE

对PerimeterX反爬SDK的完整逆向工程,实现无需浏览器的纯算法_px3/_px2生成器,并提供详尽的文档与AI辅助工具。

Stars: 71 | Forks: 17

# PerimeterX / HUMAN Security — SDK 逆向工程 **纯算法重构 PerimeterX 的 `_px3` / `_px2` cookie 链——无需浏览器,无需自动化框架。** [![version](https://img.shields.io/badge/version-2.0-blue?style=flat-square)](#) [![iFood](https://img.shields.io/badge/iFood-10%2F10-success?style=flat-square)](stample/ifood/) [![Grubhub](https://img.shields.io/badge/Grubhub-10%2F10-success?style=flat-square)](stample/grub/) [![Total Wine](https://img.shields.io/badge/Total%20Wine-10%2F10%20strict-success?style=flat-square)](stample/totalwine/) [![Academy](https://img.shields.io/badge/Academy-10%2F10%20strict%2B-success?style=flat-square)](stample/academy/) [![Walmart](https://img.shields.io/badge/Walmart-10%2F10%20PX--layer-yellow?style=flat-square)](stample/walmart/) [![License](https://img.shields.io/badge/license-AGPL--3.0%20%2B%20CC%20BY--NC--SA-orange?style=flat-square)](#license) [中文](README.zh.md) · [快速开始](#quick-start) · [工作原理](#how-it-works) · [文档](#documentation) · [AI Skill](skill/AI_re/) · [License](#license)
## 功能说明 - **重构静默采集器流程** — EV1/EV2/EV3 sensor payload → 采集器 POST 链 → `_pxN`,无需 headless 浏览器。 - **9 个可复用的加密/编码原语** ([`revers/`](revers/)) — payload XOR/base64/interleave、PC (HMAC-MD5)、OB decode、SID stego、UUID v1、djb2、memory、anti-tamper、`/ns`。 - **模板方法论** — 捕获 6 个真实批次,锁定 STATIC 字段,从 SDK 逆向 DYNAMIC 字段。约 90% 的代码可跨站点移植;只有常量和少数 b64 密钥不同。 - **三个部署层级** — 同一个 SDK 在不同客户处有不同的配置;本项目记录了 lenient → strict → strict+ 的区别,以及每个额外的服务端检查所需的要求。 ## 已验证站点 | 站点 | 层级 | Cookie | 链路 | 结果 | |---|---|---|---|---| | [ifood.com.br](stample/ifood/) | lenient | `_px3` (ttl 330) | 2-POST | **10/10** | | [grubhub.com](stample/grub/) | lenient | `_px2` (ttl 500) | 2-POST | **10/10** | | [walmart.com](stample/walmart/) | lenient | `_px3` (ttl 330) | 2-POST | **10/10** ² | | [totalwine.com](stample/totalwine/) | **strict** | `_px2` (ttl 330) | 3-POST + EV3 | **10/10** | | [academy.com](stample/academy/) | **strict+** | `_px3` (ttl 330) | 3-POST + TLS/IP 绑定信任 | **10/10** ¹ | 所有常量均直接提取自真实的 POST-body 捕获(每个公开站点有 6 个可审计的批次)。 ¹ academy 是一个 strict+ 案例(其信任绑定至生成器的 TLS 指纹、`/ns` token、真实 Chrome 模板以及出口 IP 信誉);其生成器包保持私有。层级方法论已在 [AI skill](skill/AI_re/references/deployment-tiers.md) 中记录。 ² walmart **仅限 PX 层** —— 该站点的主要拦截机制是 **Akamai Bot Manager**,而 PerimeterX 作为次要层。`_px3` 可被 PX 采集器接受 (10/10),但**无法**通过 Walmart 的业务 API(Akamai `_abck`/`bm_sv` 超出了本 skill 的范围)。此处将其作为清晰的 lenient + 跨事件一致性参考案例纳入。 ## 快速开始 ``` git clone https://github.com/warterbili/PerimeterX_RE.git cd PerimeterX_RE && npm install # iFood — 生成 _px3(宽松层级,按原样运行) node stample/ifood/px_cookie/ifood_px3.js # → ✅ _px3=eyJ1IjoiYWJj… ttl=330 ev1=14 ev2=204 # Grubhub — 生成 _px2 node stample/grub/px_cookie/grubhub_px2.js # Walmart — 生成 _px3(宽松层级;仅限 PX-layer,需要美国出口 IP) node stample/walmart/px_cookie/walmart_px3.js # → ✅ _px3=a2426f96… ttl=330 ev1=12 ev2=207 # ⚠️ 仅限 PX-layer:Walmart 的业务 API 受 Akamai 保护(不在范围内)。 # PX 成功差异验证:node stample/walmart/script/px_success_proof.js # Total Wine — 生成 _px2(严格层级,3-POST;需要美国住宅代理) HTTPS_PROXY=http://user:pass@host:port node stample/totalwine/px_cookie/totalwine_px2.js # → _px2=… ttl=330 ev1=13 ev2=199 ev3=11 seq2=200 # 端到端业务调用(需要代理)— cookie → 真实的受限 HTML #### node stample/totalwine/px_cookie/business_api_demo.js Each `stample//px_cookie/` has a `smoke_test.js` (offline self-check) and `business_api_demo.js` (end-to-end). The press-challenge path is a userscript — see [`bundle/`](bundle/). ## 工作原理 PerimeterX runs two defenses. **99% of traffic** is the **silent collector**: the SDK serializes sensor events (EV1/EV2/EV3), encrypts them (XOR → base64 → interleave), signs a PC (HMAC-MD5 digit extraction), POSTs to the collector, and gets back an OB-encoded `_pxN`. The **<1% press-challenge** path adds a PoW + WASM bundle — handled separately in [`bundle/`](bundle/). A generator is a real capture template with only the **dynamic** fields overwritten: server state (`parseInt`'d), HMAC/MD5 fields (inputs reversed per-site from the SDK), counters, timestamps, the `/ns` token, and the anti-tamper slot. Strict tiers add a mandatory EV3 cookie-confirmation beacon, counter sync, and `hid`; strict+ additionally binds trust to the **mint transport** (real Chrome TLS) and exit-IP reputation. Full methodology: [`main/`](main/) and the [AI skill](skill/AI_re/). ## 项目结构 ``` revers/ 9 个算法模块 (require()-able) skill/ AI 逆向工程 skill stample/ 分站点生成器 + 6 个捕获批次 ├─ AI_re/ PX 核心 skill (playbooks + 工具) ├─ ifood/ lenient · _px3 └─ cdp/ 真实 Chrome CDP 捕获 skill ├─ grub/ lenient · _px2 main/ 技术文档 (ZH + EN) ├─ walmart/ lenient · _px3 · 仅限 PX 层 (受 Akamai 拦截) bug_report/ 陷阱 / 失败模式记录 ├─ totalwine/ strict · _px2 · 3-POST research/ 字段熵 + SDK 漂移研究 └─ academy/ strict+ · _px3 · TLS/IP 绑定信任 bundle/ press-challenge 路径 (PoW + WASM userscript) #### node_bridge/ JSDOM "Plan B" 预言机 (运行真实 SDK) ## 文档 | 文档 | 内容 | |---|---| | [`main/ZH`](main/ZH/) · [`main/EN`](main/EN/) | 完整技术参考 —— 算法、协议、EV 字段表、跨版本 grep 方法论 | | [`skill/AI_re/`](skill/AI_re/) | 逆向工程 skill:7 份参考、11 个 playbook、17 个 CLI 工具、23 个陷阱 | | [`skill/AI_re/references/validated-sites.md`](skill/AI_re/references/validated-sites.md) | 各站点常量 + b64-key 映射 + 层级检查清单 (抓取新站点前必读) | | [`skill/AI_re/references/deployment-tiers.md`](skill/AI_re/references/deployment-tiers.md) | Lenient / strict / strict+ 对比 | | [`bug_report/`](bug_report/) | 记录的失败模式 / 陷阱 | ## 限制 - 各站点的实现绑定至**特定锁定的 SDK 版本**;当 PX 发布新 SDK 时,需要重新捕获并重新推导 (该 skill 包含一份升级 playbook)。 - strict+ 站点需要**源自真实 Chrome 的模板 + Chrome-TLS 传输通道 + 每个 cookie 对应一个干净的住宅出口 IP** —— 通过 node TLS 或信誉受损的 IP 生成的字节正确的 cookie 依然会被拦截挑战。 - press-challenge (PoW/WASM) 路径是一个浏览器 userscript,而非纯数学计算。 ## License 双轨制 (全文见 [`LICENSE`](LICENSE)): | 资产 | 范围 | License | |---|---|---| | **代码** | `revers/` · `stample/*/px_cookie/` · `bundle/script/` · `node_bridge/` · `skill/*/scripts/` | **AGPL-3.0** — 商业/SaaS 用途必须开源回馈 | | **文档** | `main/` · `bug_report/` · `research/` · 所有 `README` / `SKILL.md` | **CC BY-NC-SA 4.0** — 非商业性 + 署名 + 相同方式共享 | ## 伦理与免责声明 仅供研究 / 教育 / 个人审计使用;所有捕获样本均通过研究员自己的账号收集。**严禁**用于未 经授权的爬取、盗刷/优惠券欺诈、扫货、撞库、DoS,或任何违反目标服务条款 (ToS) 及当地法 律 (US CFAA / EU GDPR / China CSL & PIPL 等) 的行为。作者将此作为学术成果发布,对任何由此 导致的账号封禁、IP 黑名单、诉讼或损失**不承担任何责任**;合法合规由用户自行负责。再次分发 必须保留 [`LICENSE`](LICENSE) 中的完整免责声明。iFood / Grubhub / Total Wine 仅为协 议研究对象——本项目既不鼓励也不指导任何针对它们的恶意行为。 **负责任的披露** —— 所有发现均来自协议层和算法层的逆向工程:未涉及内部源码、私有 API 或未 经授权的访问;未利用后端漏洞;未绕过 TLS/cert/signature;未窃取第三方密钥或数据。符合逆向 工程合理使用和安全研究豁免条款 (例如 US DMCA §1201(j))。合规联系人:通过 GitHub Issues 联 系 `warterbili` —— 作者保留在正式请求后 90 天内调整披露范围的权利。 ## 引用 ``` @misc{perimeter_v2_2026, author = {warterbili}, title = {{PerimeterX (HUMAN Security) SDK Reverse Engineering}}, year = {2026}, version = {2.0}, howpublished = {GitHub Repository}, url = {https://github.com/warterbili/PerimeterX_RE} #### }
v2.0 · research artifact · back to top
```
标签:WASM, 云资产清单, 加密算法, 反爬虫, 绕过, 自定义脚本, 逆向工程