防止它人代码调试?分享 1 段优质 JS 代码片段!

大家好,我是大澈!

本文约 600+ 字,整篇阅读约需 1 分钟。

每日分享一段优质代码片段。

今天分享一段 JS 代码片段,是防止代码被调试或篡改的基础。

老规矩,先阅读代码片段并思考,再看代码解析再思考,最后评论区留下你的见解!

(()=>{
function ban(){setInterval(()=>{debugger;}, 50);try {ban();} catch(err){}
}
ban();
})();

分享原因

这段代码展示了如何使用立即执行函数表达式 (IIFE) 和 setInterval 方法,通过在短时间内持续触发 debugger 语句来迫使调试器频繁中断,从而使调试变得极为困难。

同时,通过递归调用 ban 函数进一步增加了复杂性,即使捕获到异常也会继续执行,确保防护措施持续生效。

这种技巧常用于防止代码被调试或篡改,是一些反调试和反破解技术的基础。

代码解析

1. 立即执行函数 (()=>{ ... })();

立即执行函数在定义时立即执行,不需要显式调用。

用于创建一个独立的作用域,避免变量污染全局作用域。

2. setInterval(()=>{debugger;}, 50);

setInterval 方法会每隔 50 毫秒执行一次传入的箭头函数。

箭头函数中包含 debugger 语句,会导致浏览器或开发工具中的调试器不断中断执行。

3. try {ban(); } catch(err){}

尝试调用 ban 函数自身,形成递归调用。

如果递归调用过程中出现错误(例如栈溢出),错误会被捕获并忽略,不会终止程序执行。

- end -

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何轻松解决复杂文档格式转换问题

上周,我遇到了一个棘手的问题:需要将一大堆PDF文件转换成可编辑的Word文档,时间紧迫,手动转换根本来不及。朋友推荐我使用了一个网站——xuelin.cc,这个网站不仅提供强大的AI对话功能,还能轻松完成各种文档…

Hadoop3:Yarn框架的三种调度算法

一、概述 目前,Hadoop作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。Apache Hadoop3.1.3默认的资源调度器是Capacity Scheduler。 CDH框架默认调度器是Fair Scheduler。 …

改机软件有哪些?实现一键新机、改串号、改IMEI和手机参数的需求 硬改手机软件,新机环境模拟 设备伪装,一键改机,一键复原

这次针对可以直接开端口修改参数的机型做一些工具解析 前面接触合作过很多工作室。其中很多工作室对于各自软件的跳验证有各自的需求。 一个机型各项参数一般有IMEI WiFi 蓝牙 sn psb ESN等等。 针对这些参数的修改首先要明白各自软件检测的具体是哪些参数来验证。 对于常用…

#HDC2024 心得分享#主题演讲学习-加入鸿蒙生态正当时

一、主题演讲学习心得 通过本次主题演讲的聆听与学习,我们在猜出中和不太确定的相关内容纷纷呈现。比如鸿蒙内核与HarmonyOS Next获得行业内最高等级的安全认证;盘古大模型、小艺智能体、意图理解与分发框架等构筑的AI、AIGC能力对HarmonyOS Next及原生…

MySQL高级-索引-使用规则-覆盖索引回表查询

文章目录 1、覆盖索引1.1、查看索引1.2、删除单列索引 idx_user_pro1.3、查询 profession软件工程 and age31 and status01.4、执行计划 profession软件工程 and age31 and status01.5、执行计划 select id,profession,age,status1.6、执行计划 select id,profession,age,statu…

Transformer教程之多头自注意力机制

大家好,今天我们要聊一聊Transformer中的一个核心组件——多头自注意力机制。无论你是AI领域的新手,还是深度学习的老鸟,这篇文章都会帮助你更深入地理解这个关键概念。我们会从基础开始,逐步深入,最终让你对多头自注意…

软考《信息系统运行管理员》-1.3信息系统运维的发展

1.3信息系统运维的发展 我国信息系统运维的发展总体现状 呈现三个“二八现象” 从时间周期看(开发流程)从信息系统效益看(消息体现为“用好”)从资金投入看(重开发,轻服务) 信息系统运维的发…

Codeforces Beta Round 32 (Div. 2, Codeforces format) D. Constellation 题解 枚举

Constellation 题目描述 A star map in Berland is a checked field n m nm nm squares. In each square there is or there is not a star. The favorite constellation of all Berland’s astronomers is the constellation of the Cross. This constellation can be for…

JAVA高级进阶13单元测试、反射、注解

第十三天、单元测试、反射、注解 单元测试 介绍 单元测试 就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试 咱们之前是如何进行单元测试的? 有啥问题 ? 只能在main方法编写测试代码,去调用其他方法进行测试。 …

页面开发感想

页面开发 1、 前端预览 2、一些思路 2.1、首页自定义element-plus的走马灯 :deep(.el-carousel__arrow){border-radius: 0%;height: 10vh; }需要使用:deep(标签)才能修改样式 或者 ::v-deep 标签 2.2、整体设计思路 <template><div class"card" style&…

【ChatBI】text2sql-不需要访问数据表-超轻量Python库Vanna快速上手,对接oneapi

oneapi 准备 首先确保你有oneapi &#xff0c;然后申请 kimi的api 需要去Moonshot AI - 开放平台 然后添加一个api key 然后打开oneapi的渠道界面&#xff0c;添加kimi。 然后点击 测试&#xff0c; 如果能生成响应时间&#xff0c;就是配置正确。 然后创建令牌 http:…

Vllm Offline 启动

Vllm Offline 启动 Vllm Offline 启动&#xff0c;设置环境变量&#xff0c; TRANSFORMERS_OFFLINE1reference: https://github.com/vllm-project/vllm/discussions/1405

Linux shell编程学习笔记60:touch命令

0 前言 在csdn技能树Linux入门的练习题中&#xff0c;touch是最常见的一条命令。这次我们就来研究它的用法。 1 touch命令的功能、格式和选项说明 我们可以使用touch --help命令查看touch命令的帮助信息。 [purpleendurer bash ~ ]touch --help Usage: touch [OPTION]... …

MATLAB-NGO-CNN-SVM,基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)

NGO-CNN-SVM&#xff0c;基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序均…

【Android面试八股文】Activity A跳转B,B跳转C,A不能直接跳转到C,A如何传递消息给C?

文章目录 1. 使用Intent传递消息2. 使用全局单例类(Singleton)3. 使用静态变量4. 使用Application全局静态变量5. 使用 Android系统剪切板(Clipboard)6. 本地化存储方式6.1 使用SharedPreferences6.2 使用File文件存储方式传递消息6.3 使用SQLite数据库方式传递消息7. 使用广…

【Spring Boot】Java 的数据库连接模板:JDBCTemplate

Java 的数据库连接模板&#xff1a;JDBCTemplate 1.JDBCTemplate 初识1.1 JDBC1.2 JDBCTemplate 2.JDBCTemplate 实现数据的增加、删除、修改和查询2.1 配置基础依赖2.2 新建实体类2.3 操作数据2.3.1 创建数据表2.3.2 添加数据2.3.3 查询数据2.3.4 查询所有记录2.3.5 修改数据2…

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…

深度学习实战81-基于大模型的Chatlaw法律问答中的知识图谱融合思路,数据集说明、以及知识图谱对ChatLaw的影响介绍

大家好,我是微学AI,今天给大家介绍一下深度学习实战81-基于大模型的Chatlaw法律问答中的知识图谱融合思路,数据集说明、以及知识图谱对ChatLaw的影响介绍。基于大模型的Chatlaw法律问答系统融合了知识图谱,以提高法律咨询服务的可靠性和准确性。Chatlaw通过结合知识图谱与人…

AES加密算法及AES-CMAC原理白话版系统解析

本文框架 前言1. AES加密理论1.1 不同AES算法区别1.2 加密过程介绍1.2.1 加密模式和填充方案选择1.2.2 密钥扩展1.2.3分组处理1.2.4多轮加密1.2.4.1字节替换1.2.4.2行移位1.2.4.3列混淆1.2.4.4轮密钥加1.3 加密模式1.3.1ECB模式1.3.2CBC模式1.3.3CTR模式1.3.4CFB模式1.3.5 OFB模…

redis 单节点数据如何平滑迁移到集群中

目的 如何把一个redis单节点的数据迁移到 redis集群中 方案&#xff1a; 使用命令redis-cli --cluster import 导入数据至集群 --cluster-from <arg>--cluster-from-user <arg> 数据源用户--cluster-from-pass <arg> 数据源密码--cluster-from-askpass--c…