rhming / UnicomDailyTask

联通日常任务 腾讯云函数定时执行
MIT License
152 stars 77 forks source link

请求 wbsign 增加登录用户模式 #30

Closed gitiray closed 2 years ago

gitiray commented 2 years ago

目前 wbsign 用的是 guestLogin 模式,我有抓到 signuid,但放到云函数运行之后,就是一个新设备了,回复数据包里 uid 完全变了,sign 自然也不可能匹配,导致一直不能完成这个任务。 我也尝试了模拟 device_idandroid_id 但是一直不成功,uid 还是原来的。

经研究,我发现使用不同的微博帐号可以分别给一个手机号完成积分任务。 无需考虑同一设备的问题,不需要模拟。 相比之下,每个手机号都注册一个微博帐号的难度要低很多。

所以如果能够提供登录用户模式(非游客)就太好了。 根据我的抓包来看,应该只要提供 uid s authorization 就可以了,都在 https://api.weibo.cn/2/cardlist 这一条里。

rhming commented 2 years ago

deviceId 和 androidId 可以从抓包中获取, 配置好uid就不会改变 代码中是随机生成的,需要更改掉 多账号的微博积分任务还不支持

模拟设备信息用虚拟机vmos,抓包获取sign或frida手动设置值调试计算sign

uid是根据deviceId、androidId参数游客登录获取的,sign是根据uid加密生成

账户登录https://api.weibo.cn/2/account/login,需要使用游客登录后的信息进行登录,操作在游客基础上还要增加,还有一些参数校验算法不能还原,无法实现

cardlist需要使用登录获取的gsid、aid,参数有效期有时间限制

gitiray commented 2 years ago

您可能没有完全理解我的意思,微博访问请求的数据包里有个header是 Authorization,那个应该就是登录状态的 Cookie

直接在手机上用微博客户端登录,然后抓这个cookie来使用,所以不存在访问 /account/login 的过程,Cookie失效之后重新抓取填入就好

在实际抓包过程中,已登录的帐号也不再有 /account/login 相关的请求。

rhming commented 2 years ago

获取微博任务积分接口cardlist检验的是gsid、aid、s参数, 请求头Authorization不校验,登录状态判断是根据gsid、aid

gitiray commented 2 years ago

那好吧,明白您的意思了

我再看看模拟设备