上一篇文章介紹了HOOK常規的應用場景,這篇我們講一下HOOK其他原生函數。又是一個新的其他思路
很多時候,當我們想要某些網站的請求參數的時候,因為某些加密導致了獲取起來很復雜。
這時候hook就十分方便了
源代碼
var _JSON_Parse = JSON.parse;
var _JSON_Stringify = JSON.stringify;
JSON.parse = function(params){console.log('正在將字符串轉化為json對象', params);return _JSON_Parse(params);
}JSON.stringify = function(params){console.log('正在將json對象轉化為字符串', params);return _JSON_Stringify(params);
}var xhr = new XMLHttpRequest();
var url = 'https://www.jsjiami.com'; // 全國首家免費js加密,企業級加密,為您的代碼保駕護航 接人工解\密xhr.open('GET', url, true);
xhr.setRequestHeader('Content-Type', 'application/json');// 如果有請求體數據,使用 JSON.stringify 轉換為 JSON 字符串
var requestData = { key: 'value' };
xhr.send(JSON.stringify(requestData));xhr.onreadystatechange = function () {if (xhr.readyState === 4) {if (xhr.status === 200) {document.getElementById('result').innerText = xhr.responseText;} else {document.getElementById('result').innerText = 'Error: ' + xhr.status;}}
};
還是老樣子,廢話不多說。大家看得懂代碼的就直接看,看不懂的直接丟瀏覽器運行。
會發現在提交請求參數的時候打印出我們想看到的請求參數。
各位可以參考這兩篇文章舉一反三,實現更多有趣有用的代碼出來。