声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!
🛡️ **反调试技术概述**: JavaScript逆向工程中,反调试技术旨在阻止或干扰调试过程。无限debugger是一种常见手段,它通过在代码中插入debugger语句,使调试器在特定位置中断,从而增加逆向难度。
⚙️ **无限Debugger实现原理**: 无限debugger通常通过`setInterval`定时器和动态执行代码实现。代码会不断地执行包含debugger语句的函数,导致调试器循环中断,从而达到反调试的目的。
🚫 **禁用断点绕过**: 在开发者工具中禁用所有断点,可以阻止debugger语句触发中断。但此方法也会禁用用户自定义的断点,影响调试效率,因此不常用。
⏸️ **“永不在该处暂停”**: 在debugger语句所在行右键,选择“永不在该处暂停”选项,可以阻止调试器在该处中断,从而绕过无限debugger。
🚦 **条件断点绕过**: 设置条件断点,并将条件设置为false。这样,debugger语句的执行会被条件判断阻止,从而绕过无限debugger。
📝 **本地覆盖**: 通过开发者工具的“工作区”功能,将远程JavaScript文件替换为本地文件。在本地文件中删除或注释掉debugger语句,可以彻底绕过无限debugger。
声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!
此处我们打开刚刚我们搭建好的案例地址。一般操作和之前的网站没有什么不同。但是,一旦我们打开开发者工具,就会发现它立即进入了断点模式,如下图所示。此处我们并未设置任何断点,他就直接进入了断点模式,这时候我们点击 恢复脚本执行按钮,尝试跳过这个断点继续执行,但结果仍会一次次的进入断点模式,无限循环下去,我们称这样的情况为无限debugger。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>无限Debugger案例</title>
</head>
<h1 id="box">TIDE</h1>
<body>
<script type="text/javascript">
setInterval(()=>{
(function(a) {
return (function(a) {
return (Function('Function(arguments[0]+"' + a + '")()'))
}
)(a)
}
)('bugger')('de', 0, 0, (0,
0));
}
, 1000);
</script>
</body>
</html>
setInterval(()=>{
(function(a) {
return (function(a) {
return (Function('Function(arguments[0]+"' + a + '")()'))
}
)(a)
}
)('bugger')('de', 0, 0, (0,
0));
}
, 1000);
往期推荐
E
N
D
Tide团队产品及服务
团队自研平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台 | ......
技术分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享
团队知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......
团队网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑 | ......
📍发表于:中国 山东
AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。
鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑