观察mitmproxy并找到对应网络请求
这样就可以分析分析接口参数调用B站API了。但是我们发现大部分的接口都需要一个sign参数作为动态的检验口令,而sign又是如何生成的呢,接下来我们需要反编译,寻找与分析源代码中的sign签名逻辑。
二、反编译
反编译与签名逻辑参考了@HaKu的
BiliBili Android第三方——第0步
大致操作这篇讲的很详尽了,就不赘述了,这里提一些遇到的问题吧。
上述文章反编译的版本比较老(文章作者后续也没有更新),老版本中SecretKey直接存放在了so库中,在反编译新版本的时候(我当时用的v5.4),B站对于SecretKey使用了AES加密,在反编译源码中可以找到算法模式,秘钥以及偏移量等参数(具体为bl包下的chd、chb类,和nativelibrary包下的LibBili类),但是经过试验没有成功……这方面了解非常少,如果有大佬能试验成功,请不吝赐教!最后还是找了老版本中的AppKey和AppSecretKey,都存储在libbili.so中,具体版本号为v3.14。
成果
效果图如下:
Version 1.1.0
-
架构搭建
-
分析 Api
-
完成主页界面
Version 1.2.0
-
完成直播播放页面
-
集成IjkPlayer并简易封装
-
集成DanmakuFlameMaster和来自czp3009的bilibili-api完成弹幕功能
一些开源库的更新
-
前期准备
-
反编译资源文件
-
mitmproxy抓取 Api(支持https)
-
获得 B 站 signKey 签名逻辑
-
框架搭建
用到的开源库
-
RxJava2 最coooooool的响应式编程框架
-
RxLifecycle 解决Rxjava内存泄漏
-
Retrofit 最流行的Android网络请求的框架
-
Okhttp3 和Retrofit搭配,项目中签名逻辑使用该库的拦截器模块实现
-
Dagger2 门槛略高但功能强大的依赖注入框架
-
Butterknife 绑定View的依赖注入框架
-
Eventbus 组件间通信
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
1713515281480)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!