上一篇文章介绍了HOOK常规的应用场景,这篇我们讲一下HOOK其他原生函数。又是一个新的其他思路
很多时候,当我们想要某些网站的请求参数的时候,因为某些加密导致了获取起来很复杂。
这时候hook就十分方便了
源代码
js
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;
}
}
};
还是老样子,废话不多说。大家看得懂代码的就直接看,看不懂的直接丢浏览器运行。
会发现在提交请求参数的时候打印出我们想看到的请求参数。
各位可以参考这两篇文章举一反三,实现更多有趣有用的代码出来。