前端 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
指令,下图是某网站的构建方式。
阅读 13821 · 发布于 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
随便看看
换一批
-
Java 并发编程之 AtomicBoolean阅读 1394
-
PHP编译安装redis扩展阅读 2199
-
Vue <component> 实现组件动态加载阅读 1741
-
微信小程序隐藏变量阅读 84
-
Vue 重置 data 数据阅读 813
-
MySQL server has gone away阅读 2562
-
Docker 部署 Alpine Linux阅读 932
-
Spring Boot jar 包执行报 no main manifest attribute 错误阅读 2866
-
OpenResty 整合 LuaRocks - Linux阅读 2997
-
MongoDB 搭建分片集群阅读 3580