一.js hook 过无限debugger
var _constructor = constructor;
Function.prototype.constructor = function(s) {if (s == "debugger") {console.log(s);return null;}return _constructor(s);
}//去除无限debugger
Function.prototype.__constructor_back = Function.prototype.constructor ;
Function.prototype.constructor = function() {if(arguments && typeof arguments[0]==='string'){//alert("new function: "+ arguments[0]);if( "debugger" === arguments[0]){// arguments[0]="consoLe.Log(\"anti debugger\");";//arguments[0]=";";return}}return Function.prototype.__constructor_back.apply(this,arguments);
};var _Function = Function;
Function = function(s) {if (s == "debugger") {console.log(s);return null;}return _Function(s);
}
二. hook cookie生成的位置
//方式一
(function () {
// 严谨模式 检查所有错误'use strict';
// document 为要hook的对象 这里是hook的cookievar cookieTemp = "";Object.defineProperty(document, 'cookie', {// hook set方法也就是赋值的方法set: function (val) {// 这样就可以快速给下面这个代码行下断点// 从而快速定位设置cookie的代码if (val.indexOf('FSSBBIl1UgzbN7N80T') != -1) {debugger;}console.log('Hook捕获到cookie设置->', val);cookieTemp = val;return val;}, // hook get 方法也就是取值的方法get: function () {return cookieTemp;}});
})();
//方式二 油猴
https://github.com/CC11001100/js-cookie-monitor-debugger-hook