該項(xiàng)目仿照B站的Android客戶端進(jìn)行開(kāi)發(fā),初衷是想學(xué)習(xí)流行的Android技術(shù),但是沒(méi)有數(shù)據(jù)資源。因?yàn)橄矚g逛B站,而且B站的Android客戶端又是Google推薦的MD設(shè)計(jì)規(guī)范,于是花了些時(shí)間研究B站的" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 網(wǎng)站運(yùn)營(yíng) > 仿最新BiliBili客戶端(已開(kāi)源)

仿最新BiliBili客戶端(已開(kāi)源)

時(shí)間:2023-04-23 16:36:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-04-23 16:36:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)

仿最新BiliBili客戶端(已開(kāi)源):前言

該項(xiàng)目仿照B站的Android客戶端進(jìn)行開(kāi)發(fā),初衷是想學(xué)習(xí)流行的Android技術(shù),但是沒(méi)有數(shù)據(jù)資源。因?yàn)橄矚g逛B站,而且B站的Android客戶端又是Google推薦的MD設(shè)計(jì)規(guī)范,于是花了些時(shí)間研究B站的網(wǎng)絡(luò)請(qǐng)求,最后成功搞定,與@Android_ZzT同學(xué)達(dá)成一致,合作開(kāi)發(fā)這個(gè)模仿B站的練習(xí)項(xiàng)目。該項(xiàng)目在工作之余開(kāi)發(fā),所以更新時(shí)間不定。

前期準(zhǔn)備

一、B站網(wǎng)絡(luò)請(qǐng)求抓包
首先是對(duì)B站的網(wǎng)絡(luò)請(qǐng)求進(jìn)行抓包,環(huán)境是mac,開(kāi)始嘗試使用Charles,由于B站的網(wǎng)絡(luò)請(qǐng)求大多為Https,Charles的證書(shū)設(shè)置總是不成功(沒(méi)找到正確的打開(kāi)方式),無(wú)法抓到Https的包,就放棄了。

這里推薦mitmproxy,是一款在github上托管的開(kāi)源抓包工具。
官網(wǎng)地址:http://mitmproxy.org/
github地址:https://github.com/mitmproxy/mitmproxy
教程:使用mitmproxy進(jìn)行移動(dòng)端的HTTP抓包

Tips:Https抓包需要安裝證書(shū),大部分手機(jī)按照官方文檔或是教程文章都可以成功安裝,但是小米手機(jī)無(wú)法正常下載,官方文檔中提到證書(shū)會(huì)放在~/.mitmproxy目錄下,所以可以手動(dòng)傳到手機(jī)中進(jìn)行安裝。

在設(shè)置好證書(shū)和代理之后,我們就可以開(kāi)始進(jìn)行https抓包了,先打開(kāi)app首頁(yè)


觀察mitmproxy并找到對(duì)應(yīng)網(wǎng)絡(luò)請(qǐng)求


這樣就可以分析分析接口參數(shù)調(diào)用B站API了。但是我們發(fā)現(xiàn)大部分的接口都需要一個(gè)sign參數(shù)作為動(dòng)態(tài)的檢驗(yàn)口令,而sign又是如何生成的呢,接下來(lái)我們需要反編譯,尋找與分析源代碼中的sign簽名邏輯。

二、反編譯

反編譯與簽名邏輯參考了@HaKu的

BiliBili Android第三方——第0步

大致操作這篇講的很詳盡了,就不贅述了,這里提一些遇到的問(wèn)題吧。

上述文章反編譯的版本比較老(文章作者后續(xù)也沒(méi)有更新),老版本中SecretKey直接存放在了so庫(kù)中,在反編譯新版本的時(shí)候(我當(dāng)時(shí)用的v5.4),B站對(duì)于SecretKey使用了AES加密,在反編譯源碼中可以找到算法模式,秘鑰以及偏移量等參數(shù)(具體為bl包下的chd、chb類,和nativelibrary包下的LibBili類),但是經(jīng)過(guò)試驗(yàn)沒(méi)有成功……這方面了解非常少,如果有大佬能試驗(yàn)成功,請(qǐng)不吝賜教!最后還是找了老版本中的AppKey和AppSecretKey,都存儲(chǔ)在libbili.so中,具體版本號(hào)為v3.14。

成果

效果圖如下:













Version 1.1.0

Version 1.2.0

一些開(kāi)源庫(kù)的更新

用到的開(kāi)源庫(kù)

原創(chuàng)作者:Misery_Dx
原文鏈接:https://github.com/TeamNB/FakeBiliBili





歡迎關(guān)注我的微信公眾號(hào)「碼農(nóng)突圍」,分享Python、Java、大數(shù)據(jù)、機(jī)器學(xué)習(xí)、人工智能等技術(shù),關(guān)注碼農(nóng)技術(shù)提升?職場(chǎng)突圍?思維躍遷,20萬(wàn)+碼農(nóng)成長(zhǎng)充電第一站,陪有夢(mèng)想的你一起成長(zhǎng)。

關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉