淘宝滑块x82y-226流程分析(不涉及逆向)

分析目标

  • 微信公众号: y小白的笔记 ((https://mp.weixin.qq.com/s/Py7I6RG7UT9EtdpXlV98aA)

  • 只分析验证码加载流程, 不说具体细节

  • 版本 226

  • 目标参数slidedata.n

  • 成功返回 {"code":0,"result":{"code":0,"sig":"from bx"},"success":true} 并且响应头有bx-x5sec: ***

  • 滑块初始化(主逻辑), fireyejs.js

  • 暴露接口 awsc.js

流程分析

1, 初始化

  • 点击密码输入框会触发滑块, 所以点击输入框之前下断点 脚本第一条语句, 会发现滑块已经开始了初始化, window._config_,

  • 一直F8, 直到看到目标jsfireyejs.js, 稍微梳理下, 会发现最后调用了i(49), 并且 上面声明了 a = [];, 在i(49)执行之后会发现a里面已经有95位

  • document.currentScript 为当前加载的script节点, 没有dom解析的需要自己去构造

  • lswucn 可以直接复制, 但是后面的时间戳不可写死

  • 其中36/37/94位索引, 本质为时间戳, 但是被重写了 toString, 84位索引本质是不存在的, 但是调用了被重写之后的toString之后, 84则会被push, 可以手动定位索引push的位置, 然后手动跟几步, 会发现toString重写的位置, 删了就好

  • 并且设置了定时器, 异步方法调用, 在初始化完成之后需要在合适的时机去调用

  • 注意: 存在的索引要和浏览器一致

  • 快速定位索引

function hookArray(target, index) {
    return new Proxy(target, {
        set(target, property, value) {
            if (property === (index + "")){ debugger }
            console.log(`setArray index->${property} = ${value}`);
            target[property] = value;
        },
        get(target, property){
            if (property === (index + "")){ debugger }
            let result = target[property];
            try{ console.log(`getArray index->${property} = ${result}`); }catch(e){}
            return result;
        },
        deleteProperty(target, property) {
            console.log(`deleteArray index->${property}`);
            delete target[property];
        }
    });
}
a = hookArray(a, 37);

2, 事件触发

  • 浏览器获得鼠标操作, 本质是注册了鼠标事件

  • 在初始化的时候, js注册了几个事件

  • deviceorientation陀螺仪事件, 在load事件之后调用, 由于这里没有注册load事件, 所以在 fireyejs.js 初始化之后, 浏览器会异步执行deviceorientation 事件

  • 本地在js初始化完成之后, 手动调用这个事件

3, 滑块初始化-结果

  • 先触发滑块 然后打开浏览器鼠标mousedown断点

  • 点击滑块之后最终会断到这里

  • __fy 其实是上面AWSC.configFYEx(function(n) {, 通过回调方法返回, 并设置到全局的返回值

  • 结果获取

4, 流程总结

  • 初始化目标js

  • 运行陀螺仪事件异步方法

  • 初始化滑块(AWSC.configFYEx)

  • startRecord

  • 鼠标事件调用(通过事件调用, 无需关注加密, 只需要喂进去对的参数)

  • getFYToken 获得加密结果值

总结

  • 可以适当的挂上代理去看缺少了什么环境

  • 要去对比98位数组 浏览器和本地的差异, hook数组去快速定位,

  • 缺啥补啥

  • 图是糊了点, 糊了好, 糊了安全

end 你的点赞是我最大的动力!

  • 28
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
### 回答1: X82Y打码API是一种网页验证码识别服务,可以帮助用户快速、准确地解决网页验证码识别问题。X82Y打码API文档提供了详细的使用说明和API接口文档,方便用户进行开发和集成。 X82Y打码API提供了多种语言的SDK,包括Java、Python、C#等,用户可以根据自己的需求选择合适的语言进行开发。使用该API需要先进行注册并获取对应的API Key,然后根据API文档中提供的接口进行调用即可。在调用API时,需要将图片验证码先转换为Base64编码格式,并将结果传递给API接口,API将会返回识别结果,并扣除相应的费用。 该API支持多种验证码识别类型,包括普通数字验证码、滑动验证码、GIF动态验证码等,同时还提供了针对性的参数设置,可以有效提高验证码的识别准确率。另外,该API还提供了丰富的监控和统计功能,方便用户进行业务管理和效率分析。 总之,X82Y打码API文档提供了完整的开发指南和API接口文档,可以帮助用户快速接入并使用该验证码识别服务,提高开发效率和准确性。 ### 回答2: x82y打码API文档是一个用于验证码识别的工具,它可以有效地帮助开发者自动化地完成一些繁琐的验证码识别任务。该API文档中提供了多种验证码识别的方法,可以满足不同场景下的需求。 该API文档中包含了一些基础的API接口,例如注册、登录、充值等,使用方法也非常简单方便。同时,该API文档中还提供了不同类型验证码的识别方法,例如数字验证码、字母验证码、滑块验证码等,可以为不同的应用场景提供相应的服务。 API接口的调用方法非常简单,开发者只需要按照文档中提供的接口规范进行调用即可。同时,该API文档中还提供了一些实际的应用案例,方便开发者参考和学习,并可以根据自身需要进行相应的调整和优化。 总之,x82y打码API文档是一个非常实用的验证码识别工具,通过使用该API文档,开发者可以大大提高验证码识别的效率和准确性,进而提高自身的工作效率和应用体验。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值