dy滑块验证逆向分析
定位到captcha.js文件,根据堆栈调用可以看出,代码采用了jsvmp的方式,主要在用 Vw(i, n, o, t, e, r)方法进行加密,和a_bogus一样,找到传入Vw方法的地方,传出该方法就能进行加密。最难的大头在轨迹生成,一共3段轨迹,track,dragTrack,moveTrack,最初使用缩放法,但是轨迹被验证一次后就会出现 网络异常502,,在反复尝试后,确实是被人机验证检
最新的captchaBody加密逆向
清除网页上的所有缓存,打开搜索后弹出验证码:
当出现验证码,搜索接口就不会返回数据,同时响应体里带有:X-Vc-Bdturing-Parameters,作为参数放入滑块请求流程中,具体可以自己分析接口

定位到captcha.js文件,根据堆栈调用可以看出,代码采用了jsvmp的方式,主要在用 Vw(i, n, o, t, e, r)方法进行加密,和a_bogus一样,找到传入Vw方法的地方,传出该方法就能进行加密
在该方法结束的地方打个日志断点:


操作一次滑块,大概4000条数据,找到生成的地方,需要找到res符合结果,argument又符合的步骤

观察几次生成的结果,只有当i值为88404的时候,argument的值是轨迹值,但是到这一步,加密逻辑已经实现了,所以要继续往前找,

发现入参符合要求的只有这几个,而结果可能复合要求的,就只剩下 i = 17506的时候,打条件断点,定位观察


在控制台输出异步结果,发现确实是在这一步,代码拷贝本地,和a_bogus一样的思路,拿出方法使用

直接运行captcha.js 发现并没有c===17506步骤,打上条件断点刷新网页看看初始化是怎么生成的


堆栈找到这里new window.bdCaptcha.CaptchaVerify 调用,代码复制下来,添加到初始化,在进行加密,发现可以运行,但是this和网页上的对不上

那就继续修改本地代码,插桩找到



成功拿到结果(其中还有关于补环境的略过)
最难的大头在轨迹生成,一共3段轨迹,track,dragTrack,moveTrack,最初使用缩放法,但是轨迹被验证一次后就会出现 网络异常502,,在反复尝试后,确实是被人机验证检验,根据https://blog.csdn.net/world_in_world/article/details/148564607的humanize_track,在对track进行抖动,再对dragTrack,moveTrack进行完善后,基本稳定过人机验证:

同一个X-Vc-Bdturing-Parameters不能一直使用,会出现频繁,不过实际并不会出现重复使用的情况
如果X-Vc-Bdturing-Parameters解码后,里面的fp是空的,可以自己生成,当完成滑块操作后,将fp放入cookies(游客cookie或者用户cookies)
![]()
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)