Skip to content

Latest commit

 

History

History
32 lines (28 loc) · 843 Bytes

1.4JS Hook过反调试.md

File metadata and controls

32 lines (28 loc) · 843 Bytes

JS Hook过反调试

JS Hook检测与过检测

从上一小节我们可以发现JS Hook是比较容易实现的,但是对网站的破坏性却比较大。所以有些网站会有JS Hook的检测,最常见的就是比对关键函数前后的JS文本,如果不一致就进入循环debugger。

function test(x,y){
	z=x+y;
	return z;
}
setInterval(function(){test+""=="function test(x,y){z=x+y;return z;}" ? console.log("未修改") :setInterval(function(){eval("debugger")},1000);},1000);
test(100,200);

想要过掉这种Hook检测,我们可以编写如下代码

Function.prototype.toString=function(){
	return "function test(x,y){z=x+y;return z;}";
}

JS Hook过反调试

我们可以检测setInterval中的参数代码,如果代码中有debugger,就进行过滤。

var _setInterval=setInterval;
setInterval=function(a,b){
	if(a.toString().indexOf("debugger")!=-1{
		return null;
	}
	_setInterval(a,b);
}