news 2026/2/7 4:13:34

极验4更新后forbidden,算法分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
极验4更新后forbidden,算法分析
url = aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20vZGVtb3Y0L2luZGV4LXpoLmh0bWw=

来到这个JY4的官网demo网站,这里以滑块拼图为例子,定位什么的就不说了,这里直接看加密参数:

enc_data = { "setLeft": 49, "passtime": 295, "userresponse": 50.710335869363526, "device_id": "", "lot_number": "0bc33ae753c24e1c88dfd2c95f711f5e", "pow_msg": "1|8|sha256|2025-12-29T18:02:26.845818+08:00|54088bb07d2df3c46b79f80300b0abbe|0bc33ae753c24e1c88dfd2c95f711f5e||aa1c54468f147d6d", "pow_sign": "00ccd83898e5646b9f8eaf6846d7fe8a6620d115313b87ae6d99e6ef96fcf446", "geetest": "captcha", "lang": "zh", "ep": "123", "biht": "1426265548", "gee_guard": { "roe": { "aup": "3", "sep": "3", "egp": "3", "auh": "3", "rew": "3", "snh": "3", "res": "3", "cdc": "3" } }, "TYSC": "opMx", "e1c33a": {"bc3711": {"d2c95f71": "e1c88d"}}, "em": {"ph": 0, "cp": 0, "ek": "11", "wd": 1, "nt": 0, "si": 0, "sc": 0} }

pow_msg就是"2025-12-29T18:02:26.845818+08:00"这个时间戳,前面接口返回的,拼接了captcha_id,这个也是前面接口返回的,再拼接了lot_number,也是前面接口返回的,最后拼接了一个16位的字符串,这个16为的字符串生成是这个函数,我这里解了混淆。

function i(_ᖗᖃᖁᕾ, _ᕶᕾᖚᖙ, _ᖈᕹᖙᕿ, _ᖚᕹᖈᕹ, _ᕷᖉᕴᖃ, _ᕵᖉᖃᖆ, _ᕾᕹᖃᖆ) { var a, _ = _ᕷᖉᕴᖃ % 4, u = parseInt(_ᕷᖉᕴᖃ / 4, 10), c = (a = "0", new Array(u + 1)["join"](a)), h = _ᖚᕹᖈᕹ + "|" + _ᕷᖉᕴᖃ + "|" + _ᖈᕹᖙᕿ + "|" + _ᕵᖉᖃᖆ + "|" + _ᕶᕾᖚᖙ + "|" + _ᖗᖃᖁᕾ + "|" + _ᕾᕹᖃᖆ + "|"; while (1) { var p = (0, _ᕺᖈᖀᕸ["guid"])(), l = h + p, f = void 0; switch (_ᖈᕹᖙᕿ) { case "md5": f = new _ᖄᖁᖄᕾ["default"]["MD5"]()["hex"](l); break; case "sha1": f = new _ᖄᖁᖄᕾ["default"]["SHA1"]()["hex"](l); break; case "sha256": f = new _ᖄᖁᖄᕾ["default"]["SHA256"]()["hex"](l); } if (0 == _) { if (0 === f["indexOf"](c)) return { pow_msg: h + p, pow_sign: f }; } else if (0 === f["indexOf"](c)) { var d = void 0, g = f[u]; switch (_) { case 1: d = 7; break; case 2: d = 3; break; case 3: d = 1; } if (g <= d) return { pow_msg: h + p, pow_sign: f }; } } }

pow_sign就是pow_msg进行SHA256加密,之前是MD5

然后就是加密算法和JY3没有区别,同样AES-CBC加密返回一个数组,然后JY4这里是直接转16进制的字符串,JY3是魔改的base64编码,最后都是拼接了RSA加密aes-key的字符串,长度是256位的。

_ᖗᖃᖁᕾ["arrayToHex"] = function (_ᕷᖉᕴᖃ) { for (var t = [], s = 0, n = 0; n < 2 * _ᕷᖉᕴᖃ["length"]; n += 2) t[n >>> 3] |= parseInt(_ᕷᖉᕴᖃ[s], 10) << 24 - n % 8 * 4, s++; for (var i = [], o = 0; o < _ᕷᖉᕴᖃ["length"]; o++) { var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255; i["push"]((r >>> 4)["toString"](16)), i["push"]((15 & r)["toString"](16)); } return i["join"](""); }

最后看一下纯python实现的效果

官网的滑块官网的一键过官网的文字点选官网的六宫格如有侵权,联系删除!!!

如有侵权,联系删除!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/2 16:45:34

Docker exec进入正在运行的PyTorch容器调试问题

Docker exec进入正在运行的PyTorch容器调试问题 在深度学习项目开发中&#xff0c;一个常见的场景是&#xff1a;你启动了一个基于 PyTorch 的训练任务容器&#xff0c;几个小时后发现模型没有如预期那样加载 GPU&#xff0c;或者某个依赖包无法导入。此时如果选择停止容器、修…

作者头像 李华
网站建设 2026/2/3 12:06:45

PyTorch安装教程GPU版:基于PyTorch-CUDA-v2.7镜像快速部署

PyTorch-CUDA 镜像实战指南&#xff1a;一键部署 GPU 深度学习环境 在现代 AI 开发中&#xff0c;最让人头疼的往往不是模型设计本身&#xff0c;而是“为什么我的代码跑不起来&#xff1f;”——明明在同事电脑上运行流畅的训练脚本&#xff0c;换到自己机器却报出 CUDA not a…

作者头像 李华
网站建设 2026/2/5 9:22:25

利用PyTorch-CUDA镜像降低新人入职AI项目的上手门槛

利用PyTorch-CUDA镜像降低新人入职AI项目的上手门槛 在一家AI初创公司&#xff0c;新来的算法工程师小李花了整整三天才跑通第一个训练脚本——不是模型写错了&#xff0c;而是环境问题&#xff1a;CUDA版本不匹配、cuDNN没装对、PyTorch编译时找不到GPU支持……这样的场景&…

作者头像 李华
网站建设 2026/2/6 12:15:51

利用Transformers管道进行文本生成:在CUDA镜像中实测Token输出速率

利用Transformers管道进行文本生成&#xff1a;在CUDA镜像中实测Token输出速率 你有没有遇到过这样的场景&#xff1a;刚部署好的大模型API&#xff0c;用户一输入提示词&#xff0c;系统就开始“思考人生”——响应慢得像在加载上世纪的网页&#xff1f;尤其当并发请求上来时&…

作者头像 李华
网站建设 2026/2/4 22:41:16

Markdown脚注使用规范:为技术术语添加解释

Markdown脚注使用规范&#xff1a;为技术术语添加解释 在撰写深度学习项目文档时&#xff0c;你是否曾遇到这样的困扰&#xff1f;想向读者介绍“PyTorch-CUDA-v2.7镜像”这样一个集成环境&#xff0c;却又担心直接抛出一堆专业术语会让初学者望而却步。一边是保持行文流畅的需…

作者头像 李华
网站建设 2026/2/6 18:29:59

学习《C++语言程序设计教程》的收获与感悟

这个学期&#xff0c;我跟着老师学习《C语言程序设计教程》系统学习了C。从基础的语法规则、数据类型&#xff0c;到面向对象的三大核心特性——封装、继承、多态&#xff0c;每一个知识点都让我对编程有了新的认知。书中结合Visual C 2021的案例实操性很强&#xff0c;我跟着敲…

作者头像 李华