国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

JS hook 3種方法

2022-12-03 15:30 作者:拉燈的小手  | 我要投稿

本文所有教程及源碼、軟件僅為技術(shù)研究。不涉及計(jì)算機(jī)信息系統(tǒng)功能的刪除、修改、增加、干擾,更不會(huì)影響計(jì)算機(jī)信息系統(tǒng)的正常運(yùn)行。不得將代碼用于非法用途,如侵立刪!

JS hook 3種方法

環(huán)境

  • win10

  • node

方法一:覆蓋原函數(shù)

直接全部重寫原函數(shù)

function xxx(){
console.log("1111");
}
xxx = function(){
console.log("2222");
}

在這里插入圖片描述

覆蓋修改瀏覽器環(huán)境

window.alert = function(){console.log("重寫了alert方法!")};
setInterval = function(){console.log("重寫了setInterval方法!")};

在這里插入圖片描述

方法二:通過(guò)Object.defineProperty替換一個(gè)對(duì)象的屬性

屬性里可能存的是方法,也可能存的就是一個(gè)值(值有兩個(gè)方法getter、setter)

//下面是一個(gè)示例:這個(gè)示例演示了hook全局的cookie設(shè)置點(diǎn)
(function() {
? ?//嚴(yán)謹(jǐn)模式 檢查所有錯(cuò)誤
? ?'use strict';
? ?//document 為要hook的對(duì)象 ? 這里是hook的cookie
var cookieTemp = "";
? ?Object.defineProperty(document, 'cookie', {
?//hook set方法也就是賦值的方法
?set: function(val) {
? ?//這樣就可以快速給下面這個(gè)代碼行下斷點(diǎn)
? ?//從而快速定位設(shè)置cookie的代碼
? ?console.log('Hook捕獲到cookie設(shè)置->', val);
? ?cookieTemp = val;
? ?return val;
?},
?//hook get方法也就是取值的方法
?get: function()
?{
? return cookieTemp;
?}
? ?});
})();

方法三:new Proxy 不常用

Proxy 用于修改某些操作的默認(rèn)行為,等同于在語(yǔ)言層面做出修改,所以屬于一種“元編程”(meta programming),即對(duì)編程語(yǔ)言進(jìn)行編程。

Proxy 可以理解成,在目標(biāo)對(duì)象之前架設(shè)一層“攔截”,外界對(duì)該對(duì)象的訪問(wèn),都必須先通過(guò)這層攔截,因此提供了一種機(jī)制,可以對(duì)外界的訪問(wèn)進(jìn)行過(guò)濾和改寫。Proxy 這個(gè)詞的原意是代理,用在這里表示由它來(lái)“代理”某些操作,可以譯為“代理器”。

JS hook 時(shí)機(jī)

1.在控制臺(tái)注入的hook,刷新網(wǎng)頁(yè)就失效了

解決:在網(wǎng)頁(yè)加載第一個(gè)js的位置,第一行下斷點(diǎn),然后在控制臺(tái)手動(dòng)注入hook,適用于快速調(diào)試 問(wèn)題:有可能注入hook的時(shí)機(jī)還是會(huì)晚一點(diǎn),因?yàn)橄聰帱c(diǎn)的js位置不一定是第一個(gè)加載的

2.利用Fiddler的替換響應(yīng),注入hook

這種時(shí)機(jī)比較靠前

3.油猴插件(不推薦,容易被檢測(cè))

本文僅供學(xué)習(xí)交流使用,如侵立刪!


JS hook 3種方法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
博兴县| 曲松县| 阿拉善盟| 肥东县| 专栏| 梅州市| 南开区| 平乐县| 岫岩| 高淳县| 仪陇县| 土默特左旗| 广河县| 屯留县| 嘉祥县| 湘乡市| 泸定县| 克拉玛依市| 安多县| 南华县| 荃湾区| 收藏| 平乡县| 阿荣旗| 河曲县| 石城县| 通城县| 长葛市| 洛阳市| 灵丘县| 黔南| 炎陵县| 柘城县| 平邑县| 蓬莱市| 三门县| 德惠市| 吉木乃县| 烟台市| 宾川县| 临湘市|