V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
msojocs
V2EX  ›  哔哩哔哩

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

  •  
  •   msojocs · 2022-05-28 20:58:51 +08:00 · 2992 次点击
    这是一个创建于 917 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    从客户端发布后几天我就着手 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 (小圈子) 的会不会好一点?

    第 1 条附言  ·  2022-06-17 19:47:20 +08:00
    6 月 17 日
    1.2.0 版本又上了 bytecode ,
    但是没用,一个注入就把密钥拿到了。
    7 条回复    2022-05-29 08:37:03 +08:00
    beimenjun
        1
    beimenjun  
       2022-05-28 21:12:42 +08:00   ❤️ 3
    不做完事。
    kkocdko
        2
    kkocdko  
       2022-05-28 22:01:10 +08:00
    如果是练手那还好,也许能多学到点东西?

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

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

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

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

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

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

    结合#3, 我觉得这个加密操作不太正常,在运行的时候也有个注册表操作报错(因为 Linux 没有注册表);
    但由于编码问题,显示的是乱码,暂时不确定做了什么。
    efaun
        6
    efaun  
       2022-05-29 02:26:46 +08:00   ❤️ 1
    难道是为了内置反诈中心?
    zhanghua0
        7
    zhanghua0  
       2022-05-29 08:37:03 +08:00 via Android
    搞不好偷偷开机启动做 CDN (
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2555 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:41 · PVG 23:41 · LAX 07:41 · JFK 10:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.