JS setTimeout 方法,JavaScript Hook 劫持setTimeout

Jun 3, 2022 4:39:19 PM 2202

有我们网站的会员用户,想要重写  setTimeout  方法。发现有动态引入的js。需要改成自己的js,这个需求应该都懂。

一、重新定义setTimeout方法

直接上代码和注释:

//定义 _setTimeout 接收 setTimeout
var _setTimeout = window.setTimeout;
// 重写setTimeout 
window.setTimeout = function(ref, tm){

        code = '' + ref;//把方法tostring
        //判断内容有包含这个链接,可以直接方法
        if(code.indexOf('www.jsjiami.com/main.js') !== -1){
            ref = function () {
                 //我把它改成想改成其他的js
                var script = document.createElement("script");
                script.setAttribute("src","https://www.baidu.com/main.js");
                var s = document.getElementsByTagName("script")[0];
                s.parentNode.insertBefore(script, s);
                console.log('被劫持了哦1');
               
            }
        }
        //判断内容有包含这个方法
        if(code.indexOf('method') !== -1){
            ref = function () {
               console.log('被劫持了哦2');
               return ;
            }
        }

    	var argu = Array.prototype.slice.call(arguments,2);
        var f = function(){
        	ref.apply(null, argu);
        };
        return _setTimeout(f, tm);
}

应该看得明白吧,配合注释看。

比如的代码。

setTimeout(function () {
    //比如我要劫持这个引入js
    var script = document.createElement("script");
    script.setAttribute("src","https://www.jsjiami.com/main.js");
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(script, s);
    
},100);


直接请求百度了。

方法劫持我们就不演示了。


版权所属:JavaScript加密

原文地址:https://www.jsjiami.com/article/settimeout-hook.html

转载时必须以链接形式注明原始出处及本声明。


本文标签:
最新文章
JS setTimeout 方法,JavaScript Hook 劫持setTimeout 2202
文件(文本)不乱码,保存后发给对方,对方打开乱码,怎么处理文件乱码? 4309
MacBook安装Nginx最有效方法 869
模仿支付宝输入支付密码的UI,带JavaScript 密码输入校验功能 17952
Chrome浏览器模拟微信客户端访问网址,方法图文讲解模拟微信 31052
JavaScript在线加密,最牛加密按次加密计费方式讲解。 35364
丁香公开课请求 sign(签名) 分析过程讲解 12525
JavaScript优雅的跳转,作弊跳转方式,JS防检测跳转。 18584
JS代码书写注意事项,JavaScript代码压缩后为什么报错? 10400
JavaScript 加密混淆之后运行 xxxx is not defined,Javascript 提示xxxx is not defined 怎么办? 24563

      商务合作:1#vfan.cn(把#换成@),或者联系QQ:84034666

      业务咨询:i#itboy.net(把#换成@),或者联系QQ:8446666

再次输入密码