tansuo 发表于 2023-11-1 08:31:58

无限触发 debugger

打开浏览器开发者工具就会无限触发 debugger 断点,我该怎么办?
你可以禁用浏览器的断点,但这样你就没办法根据自己的需要打断点调试了。更推荐你查看我的另外一个仓库 a2d2-firefox,这个仓库利用了 GitHub Actions 持续拉取最新版的火狐浏览器源码,将 debugger 关键字替换为另外的关键字,并自动编译和发布适用于 Windows/Linux/macOS 平台的火狐浏览器。使用这些浏览器调试时不会触发 debugger 断点,且可以自定义断点位置。
这个仓库只有构建前的源代码,我在哪里可以下载到已经构建好的脚本文件?

这位大佬只是提供可以在win10安装火狐浏览器,自动编译和发布适用于 Windows/Linux/macOS 平台的火狐浏览器,win8没有,求使用方法或其它解决无限触发 debugger的方法

李恒道 发表于 2023-11-1 08:31:59

tansuo 发表于 2023-11-1 16:22
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/

爆栈了就上去调立刻就知道问题了
你没加document-start的问题

微信读书对toString做了劫持处理
如果获取到被劫持后的函数会导致递归炸网页
所以需要尽早劫持

李恒道 发表于 2023-11-1 08:41:54

一个油猴脚本的hook问题为啥折腾到浏览器层面了...
找个初始化位置直接throw追堆栈大赦天下
不行就文件替换
还不行就fd动态替换

还有就是起码给个demo大家一起看...

王一之 发表于 2023-11-1 09:31:42

李恒道 发表于 2023-11-1 08:41
一个油猴脚本的hook问题为啥折腾到浏览器层面了...
找个初始化位置直接throw追堆栈大赦天下
不行就文件替换 ...

我一般就fd类型的工具替换了

tansuo 发表于 2023-11-1 09:56:00

李恒道 发表于 2023-11-1 08:41
一个油猴脚本的hook问题为啥折腾到浏览器层面了...
找个初始化位置直接throw追堆栈大赦天下
不行就文件替换 ...

微信读书就这样,调试时就出这个,大佬可以用你的方法写个教程我好学习

tansuo 发表于 2023-11-1 09:58:30

王一之 发表于 2023-11-1 09:31
我一般就fd类型的工具替换了

微信读书就这样,调试时就出这个,大佬可以用你的方法fd类型工具写个教程我好学习

王一之 发表于 2023-11-1 10:00:26

tansuo 发表于 2023-11-1 09:58
微信读书就这样,调试时就出这个,大佬可以用你的方法fd类型工具写个教程我好学习 ...

网上随便搜一下就有了。。。。

https://blog.csdn.net/weixin_43411585/article/details/111305335

李恒道 发表于 2023-11-1 10:21:13

tansuo 发表于 2023-11-1 09:56
微信读书就这样,调试时就出这个,大佬可以用你的方法写个教程我好学习 ...


标准的ob+debugger构造模式
论坛大把资料

https://bbs.tampermonkey.net.cn/thread-5156-1-1.html
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3395
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3396
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3467
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3469
```js
const toString = Function.prototype.toString

Function.prototype.originCall = Function.prototype.call
Function.prototype.originApply = Function.prototype.apply
Function.prototype.call = function (thisArg, ...args) {
    if (toString.originApply(this) === 'function anonymous(\n) {\ndebugger\n}') {
      return undefined
    }
    return this.originCall(thisArg, ...args)
}

Function.prototype.apply = function (thisArg, args=[]) {
    if (toString.originApply(this) === 'function anonymous(\n) {\ndebugger\n}') {
      return undefined
    }
    return this.originApply(thisArg, args)
}
```
![图片.png](data/attachment/forum/202311/01/101947bevd8agoev9mctel.png)

tansuo 发表于 2023-11-1 11:00:28

王一之 发表于 2023-11-1 10:00
网上随便搜一下就有了。。。。

https://blog.csdn.net/weixin_43411585/article/details/111305335 ...

我的意思是微信读书替换或添加那个js文件,才能阻止调试不了

tansuo 发表于 2023-11-1 11:32:37

李恒道 发表于 2023-11-1 10:21

标准的ob+debugger构造模式
论坛大把资料


![无标题.png](data/attachment/forum/202311/01/113122a9oq1foouqvt14vg.png)
头几天发给你的微信图书脚本就这样,调试就出debugger
页: [1] 2
查看完整版本: 无限触发 debugger