当前位置: 首页 > news >正文

极验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实现的效果

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

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

http://www.jsqmd.com/news/160829/

相关文章:

  • 字符串处理成vscode风格
  • Anaconda GUI工具局限性:为何专业开发者转向命令行+容器
  • DiskInfo硬盘健康检测:保障长时间PyTorch训练稳定性
  • Git版本控制最佳实践:配合PyTorch模型迭代管理代码
  • 2025年12月篷房厂家推荐榜:铝合金篷房/装配式篷房/工业篷房/仓储篷房/仓库篷房/体育篷房/场馆篷房/机库篷房/矿业篷房/德国大棚,华烨海特斯引领模块化空间革新 - 海棠依旧大
  • YOLOv11数据增强策略:在PyTorch-CUDA环境中实施
  • 利用Transformers管道进行文本生成:在CUDA镜像中实测Token输出速率
  • S3 日志跨云导入 SLS:技术挑战、解决方案与最佳实践
  • Markdown技术文档SEO优化:加入‘pytorch安装教程gpu’关键词
  • Docker compose编排PyTorch-CUDA多服务环境
  • Jupyter插件推荐:提升PyTorch代码编写效率的实用工具
  • Jupyter Lab扩展安装指南:在PyTorch-CUDA环境中增强功能
  • GitHub Sponsor支持开发者:为PyTorch生态贡献资金
  • Docker配置国内镜像源:加速PyTorch-CUDA-v2.7拉取速度
  • Docker prune清理资源:释放被PyTorch占用的磁盘空间
  • Jupyter Notebook单元格执行顺序陷阱:避免PyTorch逻辑错误
  • SSH X11转发配置:在远程服务器运行PyTorch图形界面程序
  • CNN图像分类任务提速50%:PyTorch-CUDA镜像实测数据公布
  • Jupyter Notebook自动保存设置:防止PyTorch实验代码丢失
  • DiskInfo SMART数据分析:预测硬盘故障保护训练成果
  • 帮我推荐采购软件指南:中大型企业首选方案(深度测评) - 品牌排行榜
  • Conda list查看已安装包:确认PyTorch版本信息
  • 给工厂装上“数字大脑”:安全生产智能AI系统开发
  • 如何用技术博客为GPU算力带货?以PyTorch-CUDA镜像为例
  • AI能掐会算?揭秘工厂里的“预言家”:故障预测系统
  • 2026年射流分级机厂家推荐:洛阳纳微机电,实验室分级机、静态分级机、精密分级机、银粉分级机、精准分级赋能多行业升级 - 海棠依旧大
  • 2025年终智能AI客服品牌推荐:技术实力与市场表现双维度TOP10排名 - 十大品牌推荐
  • Conda环境共享方案:导出yml文件供团队成员快速部署
  • 清华镜像源同步延迟?优先选用PyTorch-CUDA完整镜像
  • Anaconda Prompt执行报错?改用PyTorch-CUDA容器规避环境问题