前端 Chrome 反《反调试》
Chrome JavaScript debugger 评论 2 大约 1304 字反调试
前文:前端Chrome反调试方法一文中介绍了几种防止别人查看前端代码(主要是JS
代码,HTML
标签还是可以在Elements
选项卡中查看)。有防止必有破解,以下介绍几种破解方式。
反反调试 - 常规方法
前文所提到的几个反调试方法,除debugger
方式外,均判断是否打开开发者工具。破解的方式也很简单,基本只需两步就可以搞定。
- 将开发者工具以独立窗口形式打开。
- 打开开发者工具后再打开网址。
反反调试 - debugger方法
若使用了debugger
方法防反调试,会出现无限debugger
,有两种破解方法。
<script>
function consoleOpenCallback2() {
document.body.innerHTML='年轻人,不要太好奇';
window.close();
window.location = "about:blank";
}
setInterval(function () {
const before = new Date();
(function(){}).constructor("debugger")();
// debugger;
const after = new Date();
const cost = after.getTime() - before.getTime();
if (cost > 100) {
consoleOpenCallback2();
}
}, 1000);
</script>
直接使用 debugger 指令
使用了间隔setInterval
轮询,直接用debugger
指令,则可以在Chrome
找到对应行(格式化后),右键行号,选择Never pause here
即可。
使用了 constructor 构造 debugger
使用了匿名函数构造debugger
指令,断点信息显示如下:
(function anonymous(
) {
debugger
})
只需在console
中输入以下代码后,点击F8
(Resume script execution)回复js
代码执行即可(直接点击小的蓝色放行按钮即可)。
Function.prototype.constructor=function(){}
使用了 Function 构造 debugger
使用了Function
构造debugger
,断点信息显示如下:
(function anonymous(
) {
Function(arguments[0]+"bugger")()
})
只需在console
中输入以下代码:
Function = function () {}
说明
对于一些混淆过的js
,不能直接看到,其实就是通过构造函数构造的debugger
指令,下图是某网站的构建方式。
阅读 7105 · 发布于 2020-05-20
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
-
123 2楼
debugger 在chrome上,可以直接停用断点
Chrome | Windows 10 2021-07-28 -
happy_code 1楼
哈哈哈,牛逼
Edge | Windows 10 2021-02-20
随便看看
换一批
-
IDEA 快捷键之快速跳转到文件改动的地方阅读 92
-
软考-系统架构设计师:电子商务阅读 795
-
Prometheus+Grafana+cAdvisor 监控 Docker 容器阅读 339
-
Linux 之 Ubuntu 安装 JDK 及 JRE阅读 1462
-
PostgreSQL 时间戳转毫秒值并去除小数位阅读 2201
-
Element UI DatePicker 时间跨度限制在同一个月内阅读 3496
-
Linux grep 过滤注释行阅读 48
-
VisualVM 2.0.6 最大堆内存大小问题阅读 743
-
MySQL 数据类型及占用字节数阅读 2678
-
走进 Rust:结构体阅读 1445