yujincheng08 / BiliRoaming

哔哩漫游,解除B站客户端番剧区域限制的Xposed模块,并且提供其他小功能。An Xposed module that unblocks bangumi area limit of BILIBILI with miscellaneous features.
https://modules.lsposed.org/module/me.iacn.biliroaming
GNU General Public License v3.0
9.36k stars 521 forks source link

[Bug] Bilibili Play版 其他地区番剧(除东南亚)搜索返回-663 #910

Closed KimmyXYC closed 1 year ago

KimmyXYC commented 1 year ago

问题描述

Bilibili Play版在登录账号后 使用其他地区番剧功能 除东南亚外均搜索失败 服务器返回-663 (哔哩哔哩服务器的返回)

{"code":-663,"message":"-663","ttl":1}

复现步骤

1.打开Bilibili Play版 登录账号 2.填写服务器(Go端 Rust端 反代 实现的服务器) 3.开启其他地区番剧搜索功能 4.搜索 鬼灭之刃 之类的番剧 5.除东南亚外均搜索失败 返回 -663

预期行为

正常返回搜索结果

实际行为

服务器返回-663

截图或录屏

photo_2023-01-03_22-31-34

安卓版本

13

哔哩漫游版本

f836186181

哔哩哔哩版本

play 版

哔哩哔哩版本号

3.16.0

使用的框架和版本

LSPosed 1.8.5

其他

https://github.com/yujincheng08/BiliRoaming/blob/master/app/src/main/java/me/iacn/biliroaming/network/BiliRoamingApi.kt#L194 其他地区番剧搜索的 appkey 是写死为 粉版 的 appkey 但哔哩哔哩开始验证 获得 accesskey 的平台 与 appkey 是否相符,不符则返回 -663 同时解析服务器后端 直接根据客户端传入的 appkey 请求哔哩哔哩服务器,得到返回值 -663

解决方案 应对根据 不同的哔哩哔哩客户端 使用不同的 appkey 进行搜索请求

日志

log.txt

KimmyXYC commented 1 year ago

通过抓包获得 最新的 Play版 Bilibili 客户端中, appKeysecretKey 有更改

appKey: ae57252b0c09105d
secretKey: c75875c596a69eb55bd119e74b07cfe3
cxw620 commented 1 year ago

如果可以, 顺带改改传个BUVID, 或者直接传一下uid, drmId和AndroidID就行, 方便服务端在API寄了的时候延长原有缓存时间(

x-biliroaming-mid: 114514
// XU prefix的buvid是用drmId生成的, 一般每设备唯一且恢复出厂设置等不改变, 更佳
// x-biliroaming-buvid: XU**** 
x-biliroaming-drmid: ***
x-biliroaming-androidid: ***
JasonKhew96 commented 1 year ago

uid 很容易能伪装,处理也麻烦一些 其实部分服务端已经按照漫游给出的平台信息进行处理,不改也没问题,但是旧版漫游没救