小白hook无限debugger
## 常见debugger及如何Hook### 1、直接使用debugger
### 2、**使用 eval() 函数**
```js
eval("debugger;")
eval('(function() {var a = new Date(); debugger; return new Date() - a > 100;}())')
```
### 3、定时器触发
```js
setInterval(function (){debugger;},4000);
```
## 第一种:永不在此断点
在debugger左边,右键,选择永不在此断点或者编辑该断点改为false。
优点:简单,易上手
缺点:如果存在内存爆破,无限调用,该方法会使浏览器卡死
!(https://img2.imgtp.com/2024/03/17/Cv4j17ki.png)
## 第二种:Hook 无限 debugger 函数
通过定时器实现的debugger,必须要从根源进行hook,否则定时器会一直重复执行,也就是必须在定时器执行前将定时器给hook掉
```js
setInterval(function () {
debugger
}, 500)
```
猿人学第一题就是该类型,在不使用第一种方法的情况下我们可以这样做
!(https://img2.imgtp.com/2024/03/17/xam5TW0C.png)
首先在定时器还未运行前进行断点,然后进行hook,下面给一种最简单的hook方法
```
window.setInterval = function(){};
```
2.构造器类型debugger
特征点就是有constructor
```
Function.prototype.__constructor_back = Function.prototype.constructor;
Function.prototype.constructor = function() {
if(arguments && typeof arguments==='string'){
if("debugger" === arguments){
return
}
}
return Function.prototype.__constructor_back.apply(this,arguments);
}
```
## 第三种:本地替换
将网页js保存到本地,把debugger函数进行修改然后使用浏览器开发者工具替换修改js,或者通过FD工具替换。
## 方式五:**使用Fiddler、油猴等插件Hook**
1.首先打开想要过debugger的网页
2.点击油猴,选择添加新脚本
3.在下面的自调用函数中写hook方法
4.点击文件保存,然后刷新网页就可以用了
!(https://img2.imgtp.com/2024/03/17/i9FAmkUS.png)
Fiddler工具(如何安装证书的教程请百度,这里只讲如何hook)
1.打开工具,使用编程猫插件的注入hook
2.地址清空,然后勾选开启
3.进入调试的网页刷新即可
!(https://img2.imgtp.com/2024/03/17/6qv26gjq.png) 还有一种方式,直接改浏览器的程序集文件,让他识别到后,不执行debugger 本帖最后由 YIUA 于 2024-3-18 16:11 编辑
Alterx 发表于 2024-3-18 14:59
100px.net大佬试试这个
利用本地替换,在html文件打个debugger,然后搜索页面的文字会搜到一个方法,你可以把方法直接删掉试试,我是提前打开debugger然后跟着跟着就过了,之前那个回答有误https://img2.imgtp.com/2024/03/18/NL0olH1O.png 学到了。谢谢大佬! 谢谢楼主分享,辛苦了。。。。。。。。。 感谢分享,学习了! 学到了,感谢 这个debugger方法 学到了,谢谢分享
学到了。谢谢大佬! 学到了,谢谢大佬! 感谢感谢,hook注入学习一下。 感谢分享,学习一下