![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JjDGSrtN-1669452128125)(1.png)]](https://1000bd.com/contentImg/2024/04/18/1c052b18645e9bad.png)
function xx() {
debugger;
console.log(1);
}
function xuhss() {
xx();
}
xuhss()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T4Q2ybHt-1669452128126)(02 - 副本.assets/image-20221126152022935.png)]](https://1000bd.com/contentImg/2024/04/18/4d50aaf599481a82.png)
代码会在调试的时候段下来
非虚拟机的方式不会跳转 到一个vm的页面
方式一:
通过将editbreakpoint设置为false 可以禁用这个调试
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jiotPAeA-1669452128127)(编辑断点.gif)]](https://1000bd.com/contentImg/2024/04/18/cc25a6818c4d63a5.gif)
方式二:
跳过代码
利用chrome插件
在eval里面运行debugger.
var aaa =Function.prototype.constructor("debugger;")
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7T5Um8gc-1669452128127)(xunijidubugger.gif)]](https://1000bd.com/contentImg/2024/04/18/00086074f67972cf.gif)
通过hook方式,将运行的函数设为空就可以跳过debugger了
Function.prototype.constructor = function(){}
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-86cCPHSn-1669452128128)(xunijidubugger2.gif)]](https://1000bd.com/contentImg/2024/04/18/5fdbda6c3455b8a7.gif)
( 打开页面 写历史记录卡死)
发现你调试之后 引入错误的逻辑。
将你的预期值和实际值进行比较,如果不一样,就是这种debugger 只能通过浏览器调用的堆栈区分出正确的逻辑
最好的方式就是不要被识别出来调试,可以通过下hook解决。