Pr0t0ns/PerimeterX-Reverse

GitHub: Pr0t0ns/PerimeterX-Reverse

该项目是一项对 PerimeterX 反机器人验证挑战的逆向工程研究,记录了从分析混淆脚本到破解加密 payload 以实现纯请求式自动绕过的完整过程。

Stars: 64 | Forks: 7

# PerimeterX-Reverse https://github.com/Pr0t0ns/PerimeterX-Solver ^ v8.9.6 版本的逆向/破解脚本 ^ *背景信息* 这个仓库将记录我的进展,我将持续尝试对 PerimeterX 的验证挑战进行逆向工程,直到能够生成一个完全自动化、纯请求且无浏览器参与的完美绕过/破解方案。 我计划抓取设备的 WEBGL 指纹,并在需要时生成我自己的 Motion Data。 *如何尽量避免触发这个 PerimeterX 验证码?* - **使用高质量的 IP 地址** | 低欺诈分数,住宅 IP(最佳) - **使用未被检测的驱动** | 如果你正在使用 selenium、puppeteer 甚至 playwright 等工具,那么使用一个真正有效的“未被检测”插件来尽量避免被触发是非常重要的(99% 的情况下,这些 antibot 服务非常容易就能判断出你正在使用像 selenium、puppeteer、playwright、phantom 等 webdriver,即使你使用的是“未被检测”的版本。就我个人而言,我建议在尝试绕过验证码时远离这些工具。) - **未被标记的 TLS** | 确保你的请求不会因为其 TLS 指纹而被标记,这一点很重要。你可以尝试避免这种情况的一种方法是,使用一个允许你修改 TLS 属性的库,例如 TLS_CLIENT,它允许你伪装一些属性,如扩展顺序、支持的 cipher suites 以及一些基本的窗口属性。请注意,这并不总是足以让你避免遇到 antibot 验证挑战。 - **未被标记的 WEBGL/设备指纹** | 如果你试图绕过的 antibot 服务足够优秀,它将会检查一种称为设备哈希/指纹的内容,该内容是根据你访问网站时它能够收集到的属性数据计算出来的。令人惊讶的是,计算出的指纹通常非常独特(大约只有 200,000 台设备中的 1 台会产生相同的哈希值),这使得 antibot 服务很容易判断你的请求是否来自具有相同浏览器属性(仅举几例:CPU、GPU、CanvasFP、屏幕分辨率、屏幕尺寸、User-Agent、浏览器扩展、时区)的客户端。正如你所见,你无法仅靠一个请求库来伪装这些类型的内容,这就是事情变得更加复杂的地方,也是为什么可能需要对 antibot 的加密方法和指纹方法进行逆向工程,以便你能够伪装这些属性。 # 工作原理 **PerimeterX 验证挑战示例**(展示于 ssense.com) ![image](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/08a7e995ac211328.png) **PX Cookie 由 PerimeterX 脚本设置** ![image](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3cf950ae1d211344.png) **设置 Cookie 的脚本在 HTML