b站弹幕重构相关 – 新api+新格式

两周前了吧,b站半废弃了旧版 comment 域名。除了直接访问的xml外都403了,然后接口换到了api下。获取内容是 /x/v1/dm/list.so ,历史弹幕则是 /x/v2/dm/history 底下并且要登录。

昨晚想确认客户端的情况,看到客户端访问的是 /x/v2/dm/list.so ,点开一个一看是个二进制?

因为b ios app的框架魔性加载,clutch没法导出,重新找一个 frida-ios-dump 才成功导出框架。名字很直接,弹幕相关在 BFCDanmaku 里面。用ida打开研究了俩小时,处理函数是 -[BFCDanmakuRemoteParser parseBinaryData: (NSData)data] 。文件格式也是真的暴力。开头一个length,然后读length取一个json,好像是屏蔽用的?这个json可能gz压缩,需要判断开头字节是否1f8b 。然后就是gz压缩的xml。是的还是xml,我还以为用其他格式了,上次那个protobuf本来也挺好,不是很懂。

再观察了一阵,这个和上次pb类似,分段,6min一段。想了想类名大概在线时候用这个动态加载,离线保存还是xml。

2 thoughts on “b站弹幕重构相关 – 新api+新格式”

    1. 其实熟悉格式的话我也就直接看出来1f8b了,写这个的时候我不认识啊()

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax