自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Jsrpc學(xué)習(xí)—網(wǎng)易云熱評(píng)加密函數(shù)逆向

開發(fā) 項(xiàng)目管理
這篇文章主要給大家介紹了jsrpc的實(shí)戰(zhàn)教程,使用jsrpc工具可以在網(wǎng)絡(luò)爬蟲過程中事半功倍,無需仔細(xì)的去扣環(huán)境,去一步步逆向。

大家好,我是皮皮。

前幾天給大家分享jsrpc的介紹篇,Python網(wǎng)絡(luò)爬蟲之js逆向之遠(yuǎn)程調(diào)用(rpc)免去摳代碼補(bǔ)環(huán)境簡(jiǎn)介,感興趣的小伙伴可以戳此文前往。今天給大家來個(gè)jsrpc實(shí)戰(zhàn)教程,Jsrpc學(xué)習(xí)——Cookie變化的網(wǎng)站破解教程,讓大家繼續(xù)加深對(duì)jsrpc的理解和認(rèn)識(shí)。下面是具體操作過程,不懂的小伙伴可以私我。

1、因?yàn)榫W(wǎng)易云音樂熱評(píng)的加密并不在cookie上,而是參數(shù)加密,所以這里就不需要進(jìn)行hook住cookie了。

2、之前就知道網(wǎng)易云音樂熱評(píng)的加密存在之地是在下圖的位置,是那個(gè)函數(shù)window.asrsea(JSON.stringify(i1x), bsR1x(["流淚", "強(qiáng)"]), bsR1x(Xp8h.md), bsR1x(["愛心", "女孩", "驚恐", "大笑"]))

3、找到了aes加密地方的函數(shù),就賦值一個(gè)自己名字的全局變量,然后轉(zhuǎn)發(fā)加密就行了。之后可以在控制臺(tái)輸入指令window.dcpeng = window.asrsea,其中window.asrsea為加密函數(shù)。注意:這個(gè)地方挺重要的,很多時(shí)候我們會(huì)寫成ct.update(),這樣會(huì)有問題!加了括號(hào)就是賦值結(jié)果,沒加就是賦值整個(gè)函數(shù)!千差萬別。

4、關(guān)閉網(wǎng)頁debug模式。注意:這個(gè)地方挺重要的,很多時(shí)候如果不關(guān)閉,ws無法注入!

5、此時(shí)在本地雙擊編譯好的文件win64-localhost.exe,啟動(dòng)服務(wù)。

6、之后在控制臺(tái)注入ws,即將JsEnv.js文件中的內(nèi)容全部復(fù)制粘貼到控制臺(tái)即可(注意有時(shí)要放開斷點(diǎn))。

7、連接通信,在控制臺(tái)輸入命令var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=para&name=wangyiyun");

8、隨后繼續(xù)輸入命令:

// 注冊(cè)一個(gè)方法 第一個(gè)參數(shù)get_v為方法名,
// 第二個(gè)參數(shù)為函數(shù),resolve里面的值是想要的值(發(fā)送到服務(wù)器的)
// param是可傳參參數(shù),可以忽略
demo.regAction("get_para", function (resolve, param) {
console.log(param);
console.log(JSON.stringify(param));
var res = dcpeng(param, '010001', '00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7', '0CoJUm6Qyw8W8jud');
resolve(JSON.stringify(res));
})

這里就用到了參數(shù)param,param也就是需要傳值過來的json對(duì)象,因?yàn)槟悴豢赡塬@取固定的歌曲id和頁碼,所以用python寫成字典,通過url編碼寫在param里。

9、這里為何不寫成dcpeng(JSON.stringify(param)...)這樣呢?因?yàn)間et傳過來的就是字符串,不用json轉(zhuǎn)字符串了。

上圖20行的位置那是json轉(zhuǎn)字符串,因?yàn)橹荒芊祷刈址祷貙?duì)象的話會(huì)變成顯示"[object]"

這兩步只是控制臺(tái)打印,不用管。

10、之后就可以在瀏覽器中訪問數(shù)據(jù)了,打開網(wǎng)址 http://127.0.0.1:12080/go?group={}&name={}&action={}?m={} ,這是調(diào)用的接口 group和name填寫上面注入時(shí)候的,action是注冊(cè)的方法名,param是可選的參數(shù),這里續(xù)用上面的例子,網(wǎng)頁就是:http://127.0.0.1:12080/go?group=para&name=wangyiyun&action=get_para?m=rid=R_SO_4_1909604321&threadId=R_SO_4_1909604321&pageNo=1&pageSize=20&cursor=-1&offset=0&orderType=1

11、如上圖所示,我們看到了那個(gè)變化的參數(shù)v的值,直接通過requests庫可以發(fā)起get請(qǐng)求。

12、現(xiàn)在我們就可以模擬數(shù)據(jù),進(jìn)行請(qǐng)求發(fā)送了,整體代碼如下所示。

import requests
import json
import urllib.parse

songid = '1908392914'
data = {
"rid": f"R_SO_4_{songid}",
"threadId": f"R_SO_4_{songid}",
"pageNo": "1",
"pageSize": "20",
"cursor": "-1",
"offset": "0",
"orderType": "1",
"csrf_token": ""
}
song_info = str(data)
param = (urllib.parse.quote(song_info))
param_url = f"http://127.0.0.1:12080/go?group=para&name=wangyiyun&action=get_para&param={param}"
response = requests.get(url=param_url).text
response_json = json.loads(response)
get_para = json.loads(response_json["get_para"])
encText = get_para["encText"]
encSecKey = get_para["encSecKey"]
# print(encText)
# print(encSecKey)


data = {
'params': encText,
'encSecKey': encSecKey
}

response = requests.post('https://music.163.com/weapi/comment/resource/comments/get?csrf_token=', data=data)
print(response.text)

運(yùn)行之后,可以得到網(wǎng)頁上的評(píng)論數(shù)據(jù):

放到j(luò)son中去解析,和網(wǎng)頁上呈現(xiàn)的數(shù)據(jù)一模一樣。

下面是原網(wǎng)頁上的原始數(shù)據(jù):

13、至此,請(qǐng)求就已經(jīng)完美的完成了,如果想獲取全部網(wǎng)頁,構(gòu)造一個(gè)range循環(huán)翻頁即可實(shí)現(xiàn),改變請(qǐng)求參數(shù)中的pageNo即可。

14、如果想抓取不同的歌曲,只需要替換songid這個(gè)參數(shù)即可。

總結(jié)

大家好,我是皮皮。這篇文章主要給大家介紹了jsrpc的實(shí)戰(zhàn)教程,使用jsrpc工具可以在網(wǎng)絡(luò)爬蟲過程中事半功倍,無需仔細(xì)的去扣環(huán)境,去一步步逆向,只一個(gè)黑盒的模式,我們就拿到了想要的結(jié)果,屢試不爽。

初次接觸jsrpc的小伙伴可能看不懂,這里還有黑哥錄制的一個(gè)視頻,大家可以對(duì)照著視頻進(jìn)行學(xué)習(xí),地址:https://www.bilibili.com/video/BV1EQ4y1z7GS,黑哥全程無聲演示,視頻的BGM很大,建議大家可以靜音播放,領(lǐng)會(huì)其中奧義。

責(zé)任編輯:姜華 來源: Python共享之家
相關(guān)推薦

2010-06-10 10:23:14

MySQL加密函數(shù)

2022-02-21 10:27:45

jsrpcPython實(shí)戰(zhàn)教程

2010-07-26 16:26:56

MS SQL Serv

2009-12-04 14:23:33

PHP JSON加密函

2022-05-18 10:03:28

JsrpcSignhook

2010-12-15 09:31:08

2010-05-14 13:50:57

2010-07-23 15:52:52

MS SQL Serv

2009-11-30 15:00:19

PHP加密解密函數(shù)au

2010-06-09 14:47:24

MySQL加密函數(shù)

2010-06-02 16:28:27

MySQL加密函數(shù)

2021-05-13 08:11:50

網(wǎng)易批量音樂

2009-07-28 16:39:16

VB.NET的MD5加

2020-09-23 09:18:56

網(wǎng)易云代碼郵箱

2009-10-14 10:08:05

VB.NET編寫DEC

2015-06-19 22:08:55

網(wǎng)易熱

2017-03-24 17:55:47

互聯(lián)網(wǎng)

2013-12-06 09:57:38

2014-03-02 15:46:30

2017-03-24 18:38:40

互聯(lián)網(wǎng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)