日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程

發布時間:2024/1/18 javascript 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上節課內容

JS逆向 -- 分析某站buvid3和_uuid的加密過程

JS逆向 -- 分析某站b_lsid值加密過程

一、清除cookie信息,刷新網頁,ctrl+f搜索sid,這樣找到的數據是在url里或者響應信息里面,全局搜索找到的一般都是在js里面的數據,找到一個v2的數據包,里面有setcookie

二、該數據包是get請求,分析里面的請求數據

https://api.bilibili.com/x/player/wbi/v2?aid=400789390&cid=1119048652&w_rid=b18731f67c5be2da813395f8a884ccdd&wts=1683797034

1、aid和cid

刷新視頻頁面,ctrl+f搜索aid,發現aid和cid,還有視頻閱讀量,就在網頁源碼中,所以可以直接python代碼實現

代碼實現

import requests import reheaders = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36' } url = 'https://www.bilibili.com/video/BV1TW4y1x73q/?spm_id_from=333.788.recommend_more_video.11'響應數據 = requests.get(url, headers=headers).text 正則結果 = re.search('"stat":\{"aid":(?P<aid>\d+),"view":(?P<view>\d+),"danmaku', 響應數據) aid=正則結果.group("aid") 視頻播放量=正則結果.group("view") cid=re.search('"cid":(.*?),"dimension"', 響應數據) print(aid,cid.group(1),視頻播放量)

2、w_rid

w_rid出現了三次,都不一樣,我們要的是最下面的值v2里面的w_rid

在關鍵代碼處全部下斷

第一次斷下

第二次斷下

重新ctrl+f重新搜索w_rid,V2數據包中w_rid是第二次斷下來的值

重新刷新頁面,第二次斷下,然后追數據,最后加密值來自于h

h = o()(p + i),p的值是:"aid=945189005&cid=892094702&wts=1684220967"

i第值是固定值:caa9ea6e1ec3e32c3efa79550f4b416a

最后的結果是32位數值,我們猜測是md5加密,經過測試,也確實是md5加密

三、重新構造數據包,實現V2的發送

import requests import re import execjs import timeheaders = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36' } url = 'https://www.bilibili.com/video/BV1TW4y1x73q/?spm_id_from=333.788.recommend_more_video.11'響應數據 = requests.get(url, headers=headers).text 正則結果 = re.search('"stat":\{"aid":(?P<aid>\d+),"view":(?P<view>\d+),"danmaku', 響應數據) aid=正則結果.group("aid") 視頻播放量=正則結果.group("view") cid=re.search('"cid":(.*?),"dimension"', 響應數據) print(aid,cid.group(1),視頻播放量)def getwrid(aid,cid,r):node = execjs.get()fp = open('jiami.js', 'r', encoding='utf8')ctx = node.compile(fp.read())a="aid="+aid+"&cid="+cid+"wts="+str(r)+"caa9ea6e1ec3e32c3efa79550f4b416a"res='MD5_Encrypt("%s")'%(a)print(res)return res url='https://api.bilibili.com/x/player/wbi/v2' r = int(time.time() * 1000) print(r) w_rid=getwrid(aid,cid.group(1),r) print(w_rid) 參數={'cid':cid.group(1),'aid':aid,'w_rid':w_rid,'wts':r } res=requests.get(url,params=參數,headers=headers) sid = res.cookies.get_dict()['sid'] print(sid)

總結

以上是生活随笔為你收集整理的JS逆向 -- 分析某站aid、cid、w_rid和sid的加密过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。