1、就是我们debugger会出现,禁止f12打开
一般禁止location是无法hook的,我们认识如下代码调试
onbeforeunload
javascript
(funciton(){
window.onbeforunload(){
debugger;
}
})
当我们找到js文件后,调试
我们可以找到其js,然后整个代码注释即可
目标url:http://120.53.92.179/sojson/cp1/index.html
发现debugger的调用栈如下这样的形式的

javascript
// function A(){
// debugger;
// B();
// }
// function B(){
// debugger;
// A()
// }
never pause here可以,但是会出现console控制台溢出的问题

然后我们发现这个报错是一秒或者几秒不断产生的,所以猜测有setInterval(xxx,xxxms)
代码在pythcharm编译工具编译后格式化却发现运行不了,原因就是浏览器还是程序检测了函数是否和原先的相等,将函数转换为了字符串。
以下代码就是为了检测函数是否转换成了字符串!
javascript
var func_toString = Function.prototype.toString;
Function.prototype.toString = function(){
var s = func_toString.apply(this,arguments);
console.log(s)
// debugger
return s;
}
通过debugger检测到如下使用了正则,检测哪些函数,有调用toString!然后RegExp就是这个函数是否被字符串化!没有的话就是如图中那样被格式化的!

所以如下没更改过的干回去,替换回去即可!


剩下抓包看sign和time得值

sojsonV6版本
先加载页面后打开f12
我们在Function.prototype.toString()方法时候,可以在console输出台直接敲this都可以知道当前哪个函数调用


当我们debugger断点的释放之后,发现页面一直打转,这个时候debugger就可以注释掉了,然后继续刷新跑代码即可
sojson主要就是为了检测代码是否格式化,目的也是反被调试
JSFU***CK
案例二


注意是改了Funciton.prototype.constructor还是改了Function("debugger")这个自己注意!