油猴 Hook createElement、getElementsByTagName、getElementById

(function() {
    'use strict';
    var xzz = {}
    !(function()  {
    'use strict';
    const $toString = Function.toString;
    const myFunction_toString_symbol = Symbol('('.concat('', ')_', (Math.random() + '').toString(36)));
    const myToString = function toString() {
        return typeof this == 'function' && this[myFunction_toString_symbol] || $toString.call(this);
    };
    function set_native(func,key,value) {
         try {
                Object.defineProperty(func, key, {
                    "enumerable": false,
                    "configurable": true,
                    "writable": true,
                    "value": value
                })
            } catch (e) {
                console_log("保护函数出错 => ", e)
                debugger
            }
    };
    set_native(Function.prototype,"toString",myToString);
    set_native(Function.prototype.toString,myFunction_toString_symbol,"function toString() { [native code] }")
    this.functionprotect = (func,func_name,type) => {
        set_native(func, myFunction_toString_symbol ,`function ${func_name || ''}() { [native code] }`);
    };
}).call(xzz);
    console.clear = function () {};
    xzz.functionprotect(console.clear,'clear');
    document.createElement = function(createElement) {
        return function() {
            var ret = createElement.apply(this, arguments);
            var time = new Date();
            console.log('[*] '+(this.__proto__ + '')+'正在创建标签'+arguments[0])
            debugger
            return ret;
        };
    }(document.createElement);
    xzz.functionprotect(document.createElement,'createElement');
    document.getElementsByTagName = function(getElementsByTagName) {
        return function () {
            var ret = getElementsByTagName.apply(this,arguments);
            var time = new Date();
            console.log('[*] '+(this.__proto__ + '')+'正在获取标签'+arguments[0]+',标签内html:'+ret.innerHTML)
            debugger
            return ret
        }
    }(document.getElementsByTagName);
    xzz.functionprotect(document.getElementsByTagName,'getElementsByTagName');
    document.getElementById = function(getElementById) {
        return function () {
            var ret = getElementById.apply(this,arguments);
            var time = new Date();
            console.log('[*] '+(this.__proto__ + '')+'正在获取标签id'+arguments[0]+',标签内html:'+ret.innerHTML)
            debugger
            return ret
        }
    }(document.getElementById);
    xzz.functionprotect(document.getElementById,'getElementById');
})();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值