吐槽一下哔哩哔哩客户端逐渐加强的代码保护

2022-05-28 20:58:51 +08:00
 msojocs

前言

从客户端发布后几天我就着手 Linux 端的移植,详情: https://v2ex.com/t/852703

(漫游修改版,今天加了 Winodws[prerelease]的安装包)

吐槽

我也做了微信开发者工具的 Linux 移植,那边代码只有压缩操作,没什么混淆加密操作;

倒是哔哩哔哩一堆骚操作:

1.1.1 版本:

普通混淆,就是把变量名、方法名用 16 进制表示,这倒没什么挺常见的;

1.1.2 版本:

加了 md5 修改校验,加了 Linux Mac 判断,就是在这两个平台运行会报警告(这不就是明显针对嘛);

1.1.3 版本:

似乎 Mac 版本发布了?好家伙,这个就更上了一层楼了:

  1. 入口 index.js 变量名、函数名等直接用随机字符串表示
  2. 核心代码用 aes-256-gcm 加密成 16 进制了
  3. 所有逻辑层的代码都上了奇怪的混淆 ---> R(0x251,']nU]') 用类似这个计算出方法名或参数,不知道有无大佬知道这叫什么

这样层层加密不是会让程序运行效率降低吗?我觉得做个差不多的意思意思不好吗。

担忧

逐渐加强的代码保护,说明 B 站大概率是知道有人在做修改版的,并且做出应对措施;

我担心我这个修改涉及篡改核心代码,会不会被发律师函之类的?

或者我把 Windows 版本删掉( prelease 状态),做成仅限 Linux (小圈子) 的会不会好一点?

3026 次点击
所在节点    哔哩哔哩
7 条回复
beimenjun
2022-05-28 21:12:42 +08:00
不做完事。
kkocdko
2022-05-28 22:01:10 +08:00
如果是练手那还好,也许能多学到点东西?

说实话,我实在想不通 Bilibili 做客户端的动机。硬件加速之类的特性,原版 Chrome 已经足够好了。
Buges
2022-05-28 22:07:02 +08:00
你说的这些加密,网页端 js 有吗?
如果同样的保护力度,说是阻止滥用还能说的过去;
如果只有客户端无端加大保护强度,那就要怀疑他们出客户端的动机了:要么客户端有更多的敏感操作权限;要么客户端有或预留 backdoor 、spyware 等见不得光的东西。
msojocs
2022-05-28 22:24:10 +08:00
@Buges

`aes-256-gcm` 这个加密核心代码的,在网页端应该没有的;

因为 开发工具-->network 会查到网络请求,可以找到密钥之类的,而且下载解密耗时会比较长,不太可能。

就类似于找一个网络请求的签名参数的算法:

安卓可以使用 C 语言算 API 请求的签名,分析会是汇编级别的,不好破解;网页端就没必要,可以通过 js 调试相对更加容易把签名生成算法搞出来。

后面的动机确实值得怀疑。
msojocs
2022-05-28 22:29:38 +08:00
@kkocdko 哈哈,学到一些犯罪技巧~

结合#3, 我觉得这个加密操作不太正常,在运行的时候也有个注册表操作报错(因为 Linux 没有注册表);
但由于编码问题,显示的是乱码,暂时不确定做了什么。
efaun
2022-05-29 02:26:46 +08:00
难道是为了内置反诈中心?
zhanghua0
2022-05-29 08:37:03 +08:00
搞不好偷偷开机启动做 CDN (

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/855913

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX