錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
愛奇藝視頻H5解析分析過程

作者: 佚名  日期:2018-10-07 18:24:07   來源: 本站整理

本帖最后由 ZSAIm 于 2018-9-7 11:17 編輯

在正文開始之前先貼下關于實現這一過程的項目地址:

Githubhttps://github.com/ZSAIm/iqiyi-parser

(若以下圖片無法觀看可以前往以下Github,/目錄下的PDF文件觀看)
說明:
這解析方式是基于愛奇藝H5播放方式的。


準備工具:
1)      Fiddler(抓包工具)
2)      谷歌瀏覽器
3)      Notepad++(文本編輯工具)
4)      Webstorm(JS調試工具)
5)      Postman(HTTP請求工具)
6)      UltraCompare(文本比較)

正文:
(由于論壇圖片大小的限制,所以對圖片進行了適當的壓縮處理,如果需要高清圖,請看Github,路徑/里面的PDF文件)
在使用谷歌瀏覽器之前,為了避免各種緩存的影響,務必先清除Cache,Cookie……


打開其中一個愛奇藝的視頻。(我以后面地址為例:https://www.iqiyi.com/v_19rqz97sb0.html)
 
使用fiddler 進行抓包,然后把對分析無用的圖像格式文件、css之類的過濾掉。
 
等待視頻開始緩存,為了保證已經加載視頻,就等待廣告過完之后再進行分析數據。……接下來就要開始分析需要的數據,當然首先要做的就是先再fiddler里面找到捕獲的視頻資源,可以通過一下兩種方式找到所需視頻資源:1)Body項,可以通過找數據長度比較長的項。2)Content-Type項,文件流格式一般使用application/octet-stream類型。綜合以上方式會比較好。以下是抓包所得結果。(視頻開始播放后,就可以停止繼續抓包了,因為這東西挺占后臺的。)
 

根據以上說的方法1找到下面的項
這是找到的一個看起來像是視頻的文件,所以你可以嘗試把響應的數據(Body)保存起來看看是不是你要的視頻文件。(當然這可能無法播放)
 
播放結果如下。
 
顯然這不是所要的視頻資源。
所以你可以不斷嘗試,直到找到你想要的視頻緩存。……然后你就能找到以下這個項
 
可惜的是,這個文件卻是無法播放的,但這并不代表他不屬于這個視頻資源的。但是如果找不到這個,也沒問題的,你會找到下一片段的視頻資源。
 
當我們知道圖片的下面一項的時候,你就很快能找到剩余的片段了。
為什么?因為你可以發現這兩個請求的URL路徑一樣,而且下面的哪一個片段是不完整的視頻,所以不可否認的是,愛奇藝把視頻片段分割成了很多片段。
什么?你覺得牽強?對,確實是這樣的。但是不如這么想,如果你覺得這不是可疑的視頻,那么當你不能在Fiddler里面找到除了這些片段的可疑播放的視頻的時候你就不會這么想了,因為不管怎么樣,你要相信fiddler已經把視頻捕獲到了。而且視頻肯定也是存在的,不然你怎么能再頁面取觀看呢對吧。既然這樣,那么我們就分析382這一項。要干什么呢?當然首先是看下這個地址
 
這恐怖的GET請求,一大堆符號。
GET /r/bdcdngdct.inter.71edge.com/videos/v0/20180831/44/87/611f0244cfe1a64d165b2f630be2e9fc.f4v?key=0433de19d0c1b75057f6fc64c676e6ded&dis_k=c17fe85c329bf7dcd883071bb8d55fa5&dis_t=1535880044&dis_dz=CT-GuangDong_GuangZhou&dis_st=42&src=iqiyi.com&uuid=7908d205-5b8bab6c-191&rn=1535880043829&qd_tm=1535880032356&qd_tvid=1294428000&qd_vipdyn=0&qd_k=a07fc56691bd8558b5e9f23e9119b36a&cross-domain=1&qd_aid=220327201&qd_uid=&qd_stert=0&qypid=1294428000_02020031010000000000&qd_p=7908d205&qd_src=01010031010000000000&qd_index=1&qd_vip=0&qyid=836c674bfa7e7387a323d314bfb4a875&pv=0.1&qd_vipres=0&range=8192-10431487HTTP/1.1
我們要做的就是構造這一串符號,并且是有依據的構造。從前面往后看,尋找最后一層目錄,得到服務器上的文件是這個
611f0244cfe1a64d165b2f630be2e9fc.f4v?key=0433de19d0c1b75057f6fc64c676e6ded&dis_k=c17fe85c329bf7dcd883071bb8d55fa5&dis_t=1535880044&dis_dz=CT-GuangDong_GuangZhou&dis_st=42&src=iqiyi.com&uuid=7908d205-5b8bab6c-191&rn=1535880043829&qd_tm=1535880032356&qd_tvid=1294428000&qd_vipdyn=0&qd_k=a07fc56691bd8558b5e9f23e9119b36a&cross-domain=1&qd_aid=220327201&qd_uid=&qd_stert=0&qypid=1294428000_02020031010000000000&qd_p=7908d205&qd_src=01010031010000000000&qd_index=1&qd_vip=0&qyid=836c674bfa7e7387a323d314bfb4a875&pv=0.1&qd_vipres=0&range=8192-10431487
為了構造他,肯定是先找到這串字符最先出現的地方了。先忽略?號后面的參數,不如先找到611f0244cfe1a64d165b2f630be2e9fc(因為一眼看去他是最突出的)這是哪里得到的吧。這就要用到fiddler強大的搜索工具了。
 


 
我們要找的就是從前往后尋找最早出現這串字符的項。
 
然后進一步尋找這一串字符出現在哪里。(也就是在一下紅框里面各自尋找這一串字符)
 
搜索結果如下,在響應中
 
那么既然這一串字符出現在這里,那么必然要先知道這一項的URL,并且構造他。
 
GET/jp/dash?tvid=1294428000&bid=300&vid=5e54f1fec36034f67521abf755dd3f93&src=01010031010000000000&vt=0&rs=1&uid=&ori=pcw&ps=0&tm=1535880031201&qd_v=1&k_uid=836c674bfa7e7387a323d314bfb4a875&pt=0&d=0&s=&lid=&cf=&ct=&authKey=4c31a25989ea7e678b670125e6ee5acf&k_tag=1&ost=0&ppt=0&dfp=&locale=zh_cn&prio=%7B%22ff%22%3A%22f4v%22%2C%22code%22%3A2%7D&pck=&k_err_retries=0&k_ft1=549755813888&bop=%7B%22version%22%3A%227.0%22%2C%22dfp%22%3A%22%22%7D&callback=Q838114a04d5d4d3adb265513f3244a36&ut=0&vf=a07fc56691bd8558b5e9f23e9119b36aHTTP/1.1
又是一長串字符了。整理參數如下
tvid=1294428000
&bid=300
&vid=5e54f1fec36034f67521abf755dd3f93
&src=01010031010000000000
&vt=0
&rs=1
&uid=
&ori=pcw
&ps=0
&tm=1535880031201
&qd_v=1
&k_uid=836c674bfa7e7387a323d314bfb4a875
&pt=0
&d=0
&s=
&lid=
&cf=
&ct=
&authKey=4c31a25989ea7e678b670125e6ee5acf
&k_tag=1
&ost=0
&ppt=0
&dfp=
&locale=zh_cn
&prio=%7B%22ff%22%3A%22f4v%22%2C%22code%22%3A2%7D
&pck=
&k_err_retries=0&k_ft1=549755813888
&bop=%7B%22version%22%3A%227.0%22%2C%22dfp%22%3A%22%22%7D
&callback=Q838114a04d5d4d3adb265513f3244a36
&ut=0
&vf=a07fc56691bd8558b5e9f23e9119b36a

看英文也可以大概的知道authKey 可能就是加密方式。所以你要在fiddler搜索authKey,(其實我這么做是為了找到構造這個鏈接所對應的js

 

這是最早出現authKey的地方,為了方便分析,把他復制到notepad++里面分析。

只找到一個結果。而且回頭看一下這些參數是不是很熟悉呢?大部分的參數他都已經給出來了。authKey:n(n("") + I + A),當然這里面都是Js加密的結果,所以我們只要找到函數n和A和I的值就能構造出authKey了。當然我們不可能吧這個js代碼分析一遍,所以我們就要借助谷歌瀏覽器的調試工具了。谷歌瀏覽器按F12彈出工具。并且在Sources找到這個js文件,并把他格式化左下角的{},(為了方便分析)
 
找到authKey,并給他做斷點。當然如果你能夠顧及的話,你可以同時分析多個參數。然后你要刷新頁面(可以直接按F5刷新),讓他停在斷點處。
 
刷新后停在e處,你也可以直接讓指針觸碰函數n,然后你就能看到
 
你可以直接點進去看是哪一個函數,顯示是這個函數
 
看來這個n是調用了一串這些函數返回的結果。u(o(c(e),e.length * g))繼續往前面找函數c(),因為停留在這個,再了解作用域這些東西可以知道,這個函數c就是在這里面,下圖
 
看來函數c是最底層了(也就是說沒有再往下調用的函數了(自定義))下面到函數o,再往前看就能找到函數o了。
 
最后就是u了,在上上圖就能看到函數u了,所以,這個參數authKey就可以構造了,現在要做的就是要找到調用這些參數所傳遞的參數。,就是I和A
 
看參數名字tm大概可以知道這是一個時間戳,而且查看I也發現  ,所以這很大概率就是時間戳。
A就是參數tvid的值。我們先返回去fiddler看下這個tvid在前面的鏈接有沒有提到過。
 


 
發現第一個鏈接就有這串數字。

 

所以我們就可以從這個鏈接得到A了,這個鏈接就是愛奇藝視頻的請求地址。




下一步&k_uid=836c674bfa7e7387a323d314bfb4a875
在進行這一步之前不妨先看下這還缺什么
 


通過對比發現就下面藍點那五個參數是上面沒有的。
 


所以前面哪一些我就不講了(因為可以通過一樣的道理分析js就能得到參數的依據),接下來我要講的就是獲得以下五個參數。
首先是這個
k_ft1=549755813888
首先分析這個,要做的當然就是先找一下后面的那一串數字在fiddler在更前一點的鏈接里面有沒有找到辣。
可惜的是沒有找到。。那么我們只能去尋找他的參數名了“k_ft1”

 
 
 

事實上你不一定看到這些就馬上用谷歌瀏覽器的開發者工具取調試他,你可以在notepad++里面看一下,找一下這個函數,比如這里面這些函數都是沒有經過壓縮函數名,這樣可以直接取尋找這個函數,然后大概分析一下他的含義,也就是他是干什么的。
 
 
 
所以這個參數解決掉了。

第二個參數:bop=%7B%22version%22%3A%227.0%22%2C%22dfp%22%3A%22%22%7D
同樣的方法,先搜索參數值,但是注意的是這里面的參數值是通過urlencode的,所以先解碼再尋找。
可以使用fiddler里面的textwizard工具來解碼

 


發現并沒有這個,但是你可以搜索里面的version或者dfp,為什么呢?因為這很有可能是類似的js片段。
{‘version’:e.version,‘dfp’:e.dfp}
,我建議搜索dfp。但是說道理,我們也可以直接搜索參數名bop而不糾結與參數值。
然后有意思的是,我們想太多了,發現其實都在這里。

 


所以這就完了,事實上這里面就有幾個函數了。
那么剩下的callback vf可以通過
callback大家可以使用谷歌瀏覽器的開發者工具調試一下,看一下什么時候獲得了callback。(圖忘了截,所以就當做是練習好了),


下面是vf
 
然后大家可以吧剛才那些參數整理一下就行了。這是一個漫長的工作,所以,我就不幫你們整理了。

到現在,我們已經構造出來了
GET/jp/dash?tvid=1294428000&bid=300&vid=5e54f1fec36034f67521abf755dd3f93&src=01010031010000000000&vt=0&rs=1&uid=&ori=pcw&ps=0&tm=1535880031201&qd_v=1&k_uid=836c674bfa7e7387a323d314bfb4a875&pt=0&d=0&s=&lid=&cf=&ct=&authKey=4c31a25989ea7e678b670125e6ee5acf&k_tag=1&ost=0&ppt=0&dfp=&locale=zh_cn&prio=%7B%22ff%22%3A%22f4v%22%2C%22code%22%3A2%7D&pck=&k_err_retries=0&k_ft1=549755813888&bop=%7B%22version%22%3A%227.0%22%2C%22dfp%22%3A%22%22%7D&callback=Q838114a04d5d4d3adb265513f3244a36&ut=0&vf=a07fc56691bd8558b5e9f23e9119b36aHTTP/1.1 

這樣,我們就能得到一開始尋找的字符串:611f0244cfe1a64d165b2f630be2e9fc


 

而要知道的是,我們的目標就是下面這個鏈接,上面的鏈接只是為了尋找字符串         611f0244cfe1a64d165b2f630be2e9fc 


GET /r/bdcdngdct.inter.71edge.com/videos/v0/20180831/44/87/611f0244cfe1a64d165b2f630be2e9fc.f4v?key=0433de19d0c1b75057f6fc64c676e6ded&dis_k=c17fe85c329bf7dcd883071bb8d55fa5&dis_t=1535880044&dis_dz=CT-GuangDong_GuangZhou&dis_st=42&src=iqiyi.com&uuid=7908d205-5b8bab6c-191&rn=1535880043829&qd_tm=1535880032356&qd_tvid=1294428000&qd_vipdyn=0&qd_k=a07fc56691bd8558b5e9f23e9119b36a&cross-domain=1&qd_aid=220327201&qd_uid=&qd_stert=0&qypid=1294428000_02020031010000000000&qd_p=7908d205&qd_src=01010031010000000000&qd_index=1&qd_vip=0&qyid=836c674bfa7e7387a323d314bfb4a875&pv=0.1&qd_vipres=0&range=0-8191HTTP/1.1 


通過簡單觀察發現,那個鏈接不僅得到了字符串611f0244cfe1a64d165b2f630be2e9fc,還得到了很多參數。不如比較一下看還缺什么。

 


通過對比發現還確實缺了不少。不如先從key開始找
key=0433de19d0c1b75057f6fc64c676e6ded
尋找0433de19d0c1b75057f6fc64c676e6ded,得到下面這一項
 
 

發現里面的鏈接就是很完整的好不好。


https://bdcdngdct.inter.71edge.com/videos/v0/20180831/44/87/611f0244cfe1a64d165b2f630be2e9fc.f4v?key=0433de19d0c1b75057f6fc64c676e6ded&dis_k=c17fe85c329bf7dcd883071bb8d55fa5&dis_t=1535880044&dis_dz=CT-GuangDong_GuangZhou&dis_st=42&src=iqiyi.com&uuid=7908d205-5b8bab6c-191&rn=1535880043829&qd_tm=1535880032356&qd_tvid=1294428000&qd_vipdyn=0&qd_k=a07fc56691bd8558b5e9f23e9119b36a&cross-domain=1&qd_aid=220327201&qd_uid=&qd_stert=0&qypid=1294428000_02020031010000000000&qd_p=7908d205&qd_src=01010031010000000000&qd_index=1&qd_vip=0&qyid=836c674bfa7e7387a323d314bfb4a875&pv=0.1&qd_vipres=0

所以我們要的就是要構造下面

GET /videos/v0/20180831/44/87/611f0244cfe1a64d165b2f630be2e9fc.f4v?qd_tvid=1294428000&qd_vipres=0&qd_index=1&qd_aid=220327201&qd_stert=0&qd_scc=ec9c19fe1c7863a46bd3245b238c2745&qd_sc=e1e1493d64de4db9c4d6c27f8220b24c&qd_p=7908d205&qd_k=a07fc56691bd8558b5e9f23e9119b36a&qd_src=01010031010000000000&qd_vipdyn=0&qd_uid=&qd_tm=1535880032356&qd_vip=0&cross-domain=1&qyid=836c674bfa7e7387a323d314bfb4a875&qypid=1294428000_02020031010000000000&qypid=1294428000_02020031010000000000&rn=1535880043829&pv=0.1&cross-domain=1HTTP/1.1 




分開參數
/videos/v0/20180831/44/87/611f0244cfe1a64d165b2f630be2e9fc.f4v?
qd_tvid=1294428000
&qd_vipres=0
&qd_index=1
&qd_aid=220327201
&qd_stert=0
&qd_scc=ec9c19fe1c7863a46bd3245b238c2745
&qd_sc=e1e1493d64de4db9c4d6c27f8220b24c
&qd_p=7908d205
&qd_k=a07fc56691bd8558b5e9f23e9119b36a
&qd_src=01010031010000000000
&qd_vipdyn=0
&qd_uid=
&qd_tm=1535880032356
&qd_vip=0
&cross-domain=1
&qyid=836c674bfa7e7387a323d314bfb4a875
&qypid=1294428000_02020031010000000000
&qypid=1294428000_02020031010000000000
&rn=1535880043829
&pv=0.1
&cross-domain=1


這一次發現和之前的參數就就差不多了,比較一下

 


看來就剩下后面的幾個參數了。當然你也可以一個參數一個參數的找依據,但是有時候這是不必要的,你可以通過在不同的愛奇藝視頻網頁請求抓包,把一些不變的量你就當然是常量就行了。當然這也有弊端比如說這樣你就無法了解更深一層的含義。或者這些參數有可能就是破解vip限制的關鍵。(講道理這些參數是什么意義我就沒研究,所以這個破解vip我是隨便說的,就是為了表達這樣一個意思,就是這些參數對僅僅解析這些視頻可能是無關重要的,但是如果你不僅僅只要這些,這些就很重要了)。



后面的幾個參數我不需要講,因為這個前面的一些參數值有重復。


比如&qyid=836c674bfa7e7387a323d314bfb4a875就是cookie的QC005。
所以后面就大概講一下如何驗證你構造出來的結果對不對。 
搬出webstorm了,

 


這個軟件可以幫助你運行js腳本,這樣你就能運行上面的函數得到結果。然后你可以使用postman可以幫助你提交數據。

 


至于這些軟件如何使用我就不講了。(如有需要自己可以去網上查教程資料什么的)
以上。 


以上的分析,我使用python 實現了這一過程,下面github地址可以找到這一項目。 

Github: https://github.com/ZSAIm/iqiyi-parserfile:///C:/Users/ADMIN/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg


有興趣的小伙伴可以參與進來改善這個程序,還有我Github里面的其他項目。(Github右上角的星號☆)!!

15.png (45.2 KB, 下載次數: 1)

 

15.png


熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數和判...
  • IIS 8 開啟 GZIP壓縮來減少網絡請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅動時提示不包含數字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 无码专区国产精品视频| 中文字幕乱偷无码AV先锋| 无码精品人妻一区二区三区免费看 | 国产网红主播无码精品| 精品久久久久久无码中文字幕| 色欲A∨无码蜜臀AV免费播| 无码一区二区三区免费视频| 国产亚洲精品a在线无码| 精品人妻无码一区二区三区蜜桃一| 13小箩利洗澡无码视频网站免费| 亚洲国产成人精品无码区花野真一| 国模无码一区二区三区| 久热中文字幕无码视频| 中文无码喷潮在线播放| 无码少妇一区二区| 中文午夜乱理片无码| 无码人妻少妇久久中文字幕蜜桃| 精品无码av一区二区三区| 精品人妻中文无码AV在线| 亚洲精品无码久久久久久久| 免费一区二区无码东京热| r级无码视频在线观看| 人妻少妇无码视频在线| 亚洲AV无码之国产精品| 久久久久无码精品国产| 久久久无码一区二区三区 | 熟妇人妻AV无码一区二区三区| 亚洲AV无码成H人在线观看| 东京热一精品无码AV| 亚洲AV无码一区二区一二区| 精品久久久无码人妻中文字幕| 蜜桃臀无码内射一区二区三区 | 无码里番纯肉h在线网站| 中文无码字慕在线观看| 最新中文字幕av无码专区 | 久久午夜无码鲁丝片直播午夜精品| 日韩综合无码一区二区| 中文字幕有码无码AV| 国产成人无码18禁午夜福利p| 亚洲国产精品成人精品无码区| 亚洲AV无码专区在线播放中文 |