无限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);
}
cookie
// 当修改cookie值的时候进行打印
(function () {
var cookieTemp = '';
Object.defineProperty(document, 'cookie', {
set: function (v) {
debugger;
console.log(v);
cookieTemp = v;
return v;
},
get: function () {
return cookieTemp;
}
});
})();
json
// JSON.stringify hook
(function () {
var _stringify = JSON.stringify;
JSON.stringify = function (ps) {
console.log(ps);
debugger;
return _stringify(ps); // 不改变原来逻辑
}
})();
// JSON.parse hook
(function () {
var _parse = JSON.parse();
JSON.parse = function (ps) {
console.log(ps);
debugger;
return _parse(ps); // 不改变原来逻辑
}
})();
header
(function () {
// 头部参数 请求对象当中的 设胃请求头部参数
var org = window.XMLHttpRequest.prototype.setRequestHeader;
window.XMLHttpRequest.prototype.setRequestHeader = function (key, value) {
// 关键字 在请求当中发现有键是Authorization 断点
if (key == 'Authorization') {
debugger;
}
return org.apply(this, arguments);
}
})();
eval
(function() {
// 保存原始方法
window.__cr_eval = window.eval;
// 重写 eval
var myeval = function(src) {
console.log(src);
console.log("=============== eval end ===============");
debugger;
return window.__cr_eval(src);
}
// 屏蔽 JS 中对原生函数 native 属性的检测
var _myeval = myeval.bind(null);
_myeval.toString = window.__cr_eval.toString;
Object.defineProperty(window, 'eval', {
value: _myeval
});
})();