https://www.nodeseek.com/post-350836-1
起因
没错,想要移除的就是搜索框里的这个东西,现在是已经移除后的效果
不知道大家有没有发现,新版B站搜索框推荐总是推荐一些很有毛病的东西,而且大部分情况不属实,直接搜索什么都搜不到,但是就挂在那吊你的胃口。盲猜使用了什么AI模型,根据每个人的口味动态生成一些推荐词,然后也不管是不是真的有这档子事,就直接放上来挂着,比如我就遇见过:
- 最近我很喜欢看cs的视频,经常看玩机器的切片
搜索框推荐:玩机器拿烟头烫Ropz - 最近喜欢看生活区 xxx 的视频,连看好几个
下次启动B站搜索框推荐:xxx(up主名字)公开道歉 - 新刷到一个游戏区的up,很喜欢他的风格,连看好几个
下次启动B站,搜索框推荐:xxx(这个游戏up)死了
上面的情况全部属实,尤其是最后一个,除此之外,还有:xxx得ai,xxx泳装照片,xxx下海
我不明白B站为什么会把这种,尤其是像“死了”,“得ai”这种极具诅咒性攻击性的词就放在上面,而且无一例外,全是假消息,搜索什么内容都搜不到,我勒个批量造谣啊
终于我有点忍无可忍了,决定想办法把这玩意干掉
思路
前提是需要有24小时开着,可以对网络连接进行处理的软件
在很久之前,bilibli主要通过 app.bilibili.com
这个域传输相关信息,mitm 后可以直接看到有DefaultWords
相关字样的路径,然后添加规则reject掉即可
但是由于现在app客户端添加了很多fallback的机制,并且主要api信息改用 grpc.biliapi.net
传输,如果检测到该域名无法获取DefaultWords
的信息,则会fallback到 app.bilibili.com
,和app.biliapi.com
。除此之外,顶级域还有 net 后缀,如app.bilibili.net
, app.biliapi.net
。所以规则中需要屏蔽全部这些域名,完整api路径/bilibili.app.interface.v1.Search/DefaultWords
但是将所有这些域名全部 mitm 可能会有性能损失,因为我们只需要屏蔽一个api路径。
所以思路为mitm
每个独立的二级域,然后按照路径拦截,后续除此之外不同的顶级域都直接reject
掉减少性能损失,比如:
https://grpc.biliapi.net/bilibili.app.interface.v1.Search/DefaultWords
mitm后根据路径rejecthttps://app.bilibili.com/bilibili.app.interface.v1.Search/DefaultWords
mitm后根据路径rejecthttps://app.biliapi.com/bilibili.app.interface.v1.Search/DefaultWords
mitm后根据路径reject- 针对fallback域名:
grpc.biliapi.com
,app.bilibili.net
,app.biliapi.net
不需要mitm,直接reject掉整个域
这样需要mitm的数量就从6个减少到3个,如果成功,搜索框的推荐词会变成:“搜索视频、番剧或up主”
规则 Surge
这个规则仅测试本人可用,不同地区或许会有不同的fallback域名,请参考上面的思路添加多出的fallback主域
需要 mitm 的域名:grpc.biliapi.net, app.bilibili.com, app.biliapi.net
[Rule]
URL-REGEX,^https:\/\/app\.biliapi\.net\/bilibili\.app\.interface\.v1\.Search\/DefaultWords$,REJECT // Added for: https://app.biliapi.net/bilibili.app.interface.v1.Search/DefaultWords
DOMAIN,app.biliapi.com,REJECT // Added for: app.biliapi.com:443
URL-REGEX,^https:\/\/app\.bilibili\.com\/bilibili\.app\.interface\.v1\.Search\/DefaultWords$,REJECT // Added for: https://app.bilibili.com/bilibili.app.interface.v1.Search/DefaultWords
URL-REGEX,^https:\/\/grpc\.biliapi\.net\/bilibili\.app\.interface\.v1\.Search\/DefaultWords$,REJECT // Added for: https://grpc.biliapi.net/bilibili.app.interface.v1.Search/DefaultWords