前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >破解无限 debugger

破解无限 debugger

作者头像
andrew_a
发布2020-02-01 16:31:28
3.1K0
发布2020-02-01 16:31:28
举报

这几天碰到了一个网站,打开 F12 直接 debugger ,点击下一步,一直 debugger什么都做不了。

然后就开始百度,看大家怎么解决的。基本上大多数都是通过查看调用栈,找到调用函数的地方,然后在 console 中重写这个函数。

但是不知道大家有没有遇到一种情况,重写是没用的,重写完之后再次点击下一步,或者关闭 F12 后,打开还是 debugger 的,还是不可以打断点。所以也就没啥用,或者就是我没找对地方。

解决办法:

使用抓包工具,注入修改过的 js。

查看调用栈,找到前端 debugger 的位置,一般都是定时任务 setInterval 执行匿名或者有名字函数实现,将这个 js 复制出来,然后将定时执行函数的地方注释掉就行。

直接搜索 setInterval ,查看里面执行的方法,然后将所有执行到这个函数的地方全部注释掉。将执行 s 函数的全部注释掉就行了。

需要注意的地方就是,有时候 js 已经缓存到本地了,然后使用抓包工具时找不到这个 js 的请求。这时候需要点击一下下面这个地方。然后刷新就可以了。然后抓包工具中就看到这个 js 了

打开 charls, 点击 tools -> map local, 然后点击添加。填入相应的内容。

然后刷新之后,页面的 debugger 就没了,你也可以继续打断点了。

不过在这个网站 debugger 中还有一个问题,它的 js 名字一直是动态变化的,每次都不一样,所以如果写死的话,就没用了。需要根据规则去匹配这个东西。但是 charles中的这个好像不能做设置了,具体也没查,如果可以的话记得留言告诉我一声。

可以使用一个谷歌插件来解决这个问题。reres 插件

点击详细信息,配置可以访问本地文件

点击添加规则,增加匹配的规则,与本地修改后的 js,点击保存

重新去请求,就解决了。完成!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫scrapy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档