前因

之前用着哔哩哔哩助手的直播消息推送感觉挺好用的,但是现在这个功能要会员了,其他付费功能对我来说又用处不大,所以没啥付费意愿,就想着能不能来个本地会员。

过程

因为刷新了几下发现没啥数据包,所以判断数据是本地存储的,只在登录时(以及开通/续费操作后)会获取会员相关的数据,于是就重新登录去抓包了一波。

file

发现了一个叫identities的疑似变量。

于是去翻一下源代码看看,路径直接全盘查扩展程序id就能找到。

file

直接vsc全局搜一波,发现有四个文件包含了这个变量名。

file

打开文件发现压缩过,直接用DevTools的自带格式化工具冲一下就完事。

第一个文件里的相关代码似乎是判断是否会员,然后identities的格式应该是[{"name": "", "to": "", "hasDateTimeLimit": ""}]这种。

file

但是尝试修改u = e=>a(e, o.a)u = e=>true去刷新一下页面发现只是开通会员字样变成了续订会员,权限验证相关的还是没有变化。

然后这时候突然想起来扩展程序应该也能被DevTools调试,于是看了一下js文件,发现上面的4个疑似文件只有2个被使用,那就更舒服了,正好还剩一个没看,目标就在剩下的那个文件了。

file

格式化后找到变量调用点发现确实有鉴权行为,但是好像是初始化页面的,用处不确定有没有。

file

先尝试一下固化内容看看,name不知道是啥,to应该是时间,但是具体格式不清楚,应该是时间戳或者文本串,hasDateTimeLimit这边没用到,盲猜一波false

那就剩下name了,先置空试试,说不定会有报错出来。

file

然后发现啥用也没有,大概name是会员类型,空的话就不是会员...

突然想起来刚才上一个文件能够影响文本显示,那应该有判断过这个name,于是下个断点去看看。

file

发现了比对的目标文本,是大概是类似于白名单的机制,所以咱们来个catForever试试。

file

刷新一下页面,成功变成会员,高级功能的设置也解锁了,但是功能是否可用还不清楚。

file

但是控制台有报错,好像是日期格式不规范,尝试了几波之后发现20991231是不报错的。

去试着改了几个设置发现都可以生效,所以应该是成功了。

后果

因为个人感觉当前的付费功能价值并没有达到其定价的高度,所以不太有付费的意愿,后期如果付费功能价值更高或者降价到我自己认为的合理范围的话,是会去入正的。

希望各位不要学我,要去支持正版,毕竟作者也是要恰饭的嘛。


The End