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

Python網(wǎng)絡(luò)爬蟲(chóng)之js逆向之遠(yuǎn)程調(diào)用(rpc)免去摳代碼補(bǔ)環(huán)境簡(jiǎn)介

開(kāi)發(fā) 前端
大家好,我是黑臉怪。這篇文章主要給大家介紹jsrpc,方便大家日后在遇到JS逆向的時(shí)候派上用場(chǎng)。

大家好,我是黑臉怪。這篇文章主要給大家介紹jsrpc,方便大家日后在遇到JS逆向的時(shí)候派上用場(chǎng)。

前言

jsrpc是指在瀏覽器開(kāi)啟一個(gè)ws和go服務(wù)連接,以調(diào)用http接口的形式來(lái)通信,瀏覽器端收到調(diào)用通信執(zhí)行原先設(shè)置好的js代碼。可以用于js逆向調(diào)用加密函數(shù)直接返回結(jié)果,也可以用來(lái)直接獲取數(shù)據(jù)。

該工具和代碼,已經(jīng)上傳到git,下載即可用。

下載地址:https://github.com/jxhczhl/JsRpc#jsrpc-hliang

代碼目錄結(jié)構(gòu)

-- main.go (服務(wù)器的主代碼)
-- resouces/JsEnv.js (客戶端注入js環(huán)境)

基本介紹

運(yùn)行服務(wù)器程序和js腳本,即可讓它們通信,實(shí)現(xiàn)調(diào)用接口執(zhí)行js獲取想要的值(加解密)

實(shí)現(xiàn)

原理:在網(wǎng)站的控制臺(tái)新建一個(gè)WebScoket客戶端鏈接到服務(wù)器通信,調(diào)用服務(wù)器的接口 服務(wù)器會(huì)發(fā)送信息給客戶端 客戶端接收到要執(zhí)行的方法執(zhí)行完js代碼后把獲得想要的內(nèi)容發(fā)回給服務(wù)器 服務(wù)器接收到后再顯示出來(lái)

說(shuō)明:本方法可以https證書且支持wss

在https的網(wǎng)站想要新建WebSocket連接如果是連接到普通的ws可能會(huì)報(bào)安全錯(cuò)誤,好像連接本地(127.0.0.1)不會(huì)報(bào)錯(cuò)~ 可以用本地和wss 你自己看著玩。

無(wú)https證書者。直接編譯main.go,我試了一下,發(fā)現(xiàn)使用本地ip(127.0.0.1)可以在https的網(wǎng)站直接連接ws使用 默認(rèn)端口12080。

有https證書者。修改main.go文件 把r.Run()注釋掉,把r.RunTls注釋取消掉 并且參數(shù)設(shè)置證書的路徑 直接輸入名字就是當(dāng)前路徑 默認(rèn)端口:12443。

另外的題外話,有域名沒(méi)證書不會(huì)搞的 或者有域名有公網(wǎng)(非固定IP的)都可以搞成的,自己研究研究。

使用方法

首先下載編譯好的文件,下載地址:https://github.com/jxhczhl/JsRpc/releases/tag/Windows

直接雙擊打開(kāi)編譯好的文件,開(kāi)啟服務(wù)。

api 簡(jiǎn)介

  • /list :查看當(dāng)前連接的ws服務(wù)
  • /ws :瀏覽器注入ws連接的接口
  • /result :獲取數(shù)據(jù)的接口 (數(shù)據(jù)格式j(luò)son: {"group":"hhh","hello":"好困啊yes","name":"baidu","status":"200"} )

說(shuō)明:接口用?group和name來(lái)區(qū)分 如注入ws的例子 ws://127.0.0.1:12080/ws?group={}&name={}, group和name都可以隨便,這是調(diào)用的接口:http://127.0.0.1:12080/go?group={}&name={}&action={}?m={},group和name填寫上面注入時(shí)候的,action是注冊(cè)的方法名,param是可選的參數(shù)。

注入JS,構(gòu)建通信環(huán)境

打開(kāi)JsEnv 復(fù)制粘貼到網(wǎng)站控制臺(tái)(注意有時(shí)要放開(kāi)斷點(diǎn))。

注入ws與方法

// 連接通信
var demo = new Hlclient("ws://127.0.0.1:12080/ws?group=hhh&name=baidu");
// 注冊(cè)一個(gè)方法 第一個(gè)參數(shù)hello為方法名,
// 第二個(gè)參數(shù)為函數(shù),resolve里面的值是想要的值(發(fā)送到服務(wù)器的)
// param是可傳參參數(shù),可以忽略
demo.regAction("hello", function (resolve, param) {
var c = "好困啊" + param;
resolve(c);
})

訪問(wèn)接口,獲得數(shù)據(jù)

http://127.0.0.1:12080/go?group=hhh&name=baidu&action=hello&param=yes
// 其中 hello是會(huì)變的 是action名字。 用代碼訪問(wèn)的時(shí)候要注意這個(gè)名字
{
"group":"hhh",
"hello":"好困啊yes",
"name":"baidu",
"status":"200"
}

總結(jié)

大家好,我是黑臉怪。 這篇文章主要給大家介紹jsrpc,文章的理論性很強(qiáng),看上去十分的粗獷,不過(guò)別擔(dān)心,接下來(lái)我給大家出幾篇關(guān)于使用jsrpc來(lái)進(jìn)行逆向的文章,針對(duì)實(shí)際的網(wǎng)站應(yīng)用此工具,讓大家加深對(duì)該工具的理解和認(rèn)識(shí)。點(diǎn)擊閱讀原文,即可可以前往項(xiàng)目git地址。

jsrpc是指在瀏覽器開(kāi)啟一個(gè)ws和go服務(wù)連接,以調(diào)用http接口的形式來(lái)通信,瀏覽器端收到調(diào)用通信執(zhí)行原先設(shè)置好的js代碼??梢杂糜趈s逆向調(diào)用加密函數(shù)直接返回結(jié)果,也可以用來(lái)直接獲取數(shù)據(jù)。日后用在爬蟲(chóng)中,可以事半功倍。


責(zé)任編輯:武曉燕 來(lái)源: Python共享之家
相關(guān)推薦

2022-07-03 10:43:23

JS逆向破解

2022-09-26 00:00:01

java代碼開(kāi)發(fā)

2017-06-14 15:20:43

Python爬蟲(chóng)BeautifulSo

2021-01-05 05:24:47

Python

2019-09-25 08:25:49

RPC網(wǎng)絡(luò)通信

2018-08-08 11:40:24

ScrapyRequest網(wǎng)絡(luò)爬蟲(chóng)

2014-09-02 10:43:45

RedisRPC

2021-04-01 10:40:22

網(wǎng)絡(luò)安全軟件

2024-05-31 08:45:24

2022-03-26 09:07:37

Pythonjs網(wǎng)絡(luò)

2016-01-05 15:20:02

Reverse逆向工具逆向工程

2018-11-16 16:03:39

數(shù)據(jù)中心網(wǎng)絡(luò)擁塞網(wǎng)絡(luò)流量

2021-04-14 15:53:58

網(wǎng)絡(luò)安全C語(yǔ)言wcslen

2021-03-24 09:46:46

網(wǎng)絡(luò)安全軟件反匯編

2021-03-31 11:35:00

網(wǎng)絡(luò)安全OllyDbg分析工具

2021-04-13 11:15:54

網(wǎng)絡(luò)安全C語(yǔ)言循環(huán)結(jié)構(gòu)

2021-04-08 11:10:22

網(wǎng)絡(luò)安全C語(yǔ)言if…else…

2011-05-23 13:08:30

2011-03-17 12:49:32

2021-04-06 11:04:54

網(wǎng)絡(luò)安全C語(yǔ)言代碼
點(diǎn)贊
收藏

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