JavaScript逆向时,常用的11个hook
01、dom操作
在JS逆向油猴脚本中,DOM操作是最常用的一种Hook方式。通过修改DOM元素的属性和样式,我们可以实现对网页的控制和修改。
点击查看代码
// 修改DOM元素的属性
document.getElementById('elementId').setAttribute('attrName', 'attrValue');
// 修改DOM元素的样式
document.getElementById('elementId').style.property = 'value';
点击查看代码
(function () {
  'use strict';
var cookieTemp = '';
Object.defineProperty(document, 'cookie', {
set: function (val) {
if (val.indexOf('__dfp') != -1) {
debugger;
      }
console.log('Hook捕获到cookie设置->', val);
      cookieTemp = val;
return val;
    },
get: function () {
return cookieTemp;
    },
  });
})();
(function () {
    'use strict';
var org = document.cookie.__lookupSetter__('cookie');
document.__defineSetter__('cookie', function (cookie) {
if (cookie.indexOf('__dfp') != -1) {
debugger;
        }
        org = cookie;
    });
document.__defineGetter__('cookie', function () {
return org;
    });
})();
点击查看代码
// 监听按钮点击事件
document.getElementById('buttonId').addEventListener('click', function() {
// 自定义操作和行为
});
点击查看代码
// 拦截AJAX请求
XMLHttpRequest.prototype._send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function() {
// 自定义操作和行为
this._send.apply(this, arguments);
};
点击查看代码
// 替换原有函数
var originalFunction = window.functionName;
window.functionName = function() {
// 自定义操作和行为
originalFunction.apply(this, arguments);
};
点击查看代码
(function () {
var open = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function (method, url, async) {
if (url.indexOf("login") != 1) {
debugger;
        }
return open.apply(this, arguments);
    };
})();
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号