网易首页 > 网易号 > 正文 申请入驻

JavaScript奇淫技巧:反调试

0
分享至

JavaScript奇淫技巧:反调试

本文,将分享几种JS代码反调试技巧,目标是:实现防止他人调试、动态分析自己的代码。

检测调试,方法一:用console.log检测

代码:

var c = new RegExp ("1");
c.toString = function () {
alert("检测到调试")
console.log (c);

原理:

当console.log输出调试信息时,会将非字符串类型数据转成字符串,于是通过接管toString函数,判断是否有这样的行为,而如果没有打开调试窗口,即不会有console.log输出,从而识别是否于处调试状态。

运行效果:

检测调试,方法二、通过代码执行时间检测

代码:

var startTime = new Date ();
debugger;
var endTime = new Date ();
var isDev = endTime-startTime> 100;
if (isDev){
alert("检测到调试")

原理:

在代码不同语句间加入debuger指令,debugger会使调试模式暂停,那么暂停将造成延迟。

通过检测延迟前后果的时间值,从而判断是否发生了延时,如果发生,则表达处于调试状态。

运行效果:

debugger触发暂停:

检测到调试:

反调试手段

检测到调试又该如何呢?

反调试方法一、无限debugger

一般情况下,可以用无限循环的debugger,使不停的暂停代码执行,使调试无法进行。

如:

var c = new RegExp ("1");
c.toString = function () {
alert("检测到调试")
setInterval(function(){
debugger
},1000);
console.log (c);

运行效果:

反调试方法二、内存耗尽

debugger方法虽然效果不错,但太过直观,反制效果也过去温柔。

另有一种“内存耗尽”的方式,会更隐藏、更强大,如:

var startTime = new Date ();
debugger;
var endTime = new Date ();
var isDev = endTime-startTime> 100;
var stack = [];
if (isDev){
while(true){
stack.push(this);
console.log(stack.length,this)

运行效果:

代码运行造成的内存占用会越来越大,很快会使浏览器崩溃,如下图:

JS代码加密

上述几种方法,已经达到了反调试的效果,但如果他人查看代码,也可能被找出检测功能并删去。

为了防止反调试功能被剔除,我们可以对JS代码进行混淆加密。

例如本文第一段代码:

var c = new RegExp ("1");
c.toString = function () {
alert("检测到调试")
console.log (c);

代码功能很清晰,使用JShaman进行混淆加密:

JShaman是专业且强力的JS代码混淆加密工具

混淆加密后的代码,将成为:

这样的代码,将很难理解其功能,也就可以防止代码被修改。

其它的JS功能代码,同样可以使用JShaman进行混淆加密,最终使用混淆加密后的安全代码。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
欧洲制裁4年俄罗斯,一夜回到解放前!普京:麻袋装钱都不够用了

欧洲制裁4年俄罗斯,一夜回到解放前!普京:麻袋装钱都不够用了

安珈使者啊
2026-04-06 16:49:56
亏损17亿!江淮汽车年报发布

亏损17亿!江淮汽车年报发布

新浪财经
2026-04-05 16:41:15
韩国人知道他们国家小吗?网友说他们不知道,但导演肯定知道

韩国人知道他们国家小吗?网友说他们不知道,但导演肯定知道

侃神评故事
2026-04-05 15:05:07
鸡肉再次被关注!研究发现:高血压人吃鸡肉,身体或有4个变化

鸡肉再次被关注!研究发现:高血压人吃鸡肉,身体或有4个变化

白话电影院
2026-04-06 19:39:25
安徽女童失踪后续,监控无故障却断片,线索增加,可疑人浮出水面

安徽女童失踪后续,监控无故障却断片,线索增加,可疑人浮出水面

奇思妙想草叶君
2026-04-06 23:35:26
孙俪的“上海小院”火了,院里种菜晒衣服养狗,满满都是烟火气

孙俪的“上海小院”火了,院里种菜晒衣服养狗,满满都是烟火气

趣文说娱
2026-04-06 21:37:13
我今年55了,想用血泪教训告诉你:不要跟任何人,包括你的父母、子女、枕边人,分享这4件事

我今年55了,想用血泪教训告诉你:不要跟任何人,包括你的父母、子女、枕边人,分享这4件事

东林夕亭
2026-03-27 09:07:57
香烟要被洗白了?中科院颠覆性研究,尼古丁或能降低40%死亡率?

香烟要被洗白了?中科院颠覆性研究,尼古丁或能降低40%死亡率?

福建平子
2026-04-05 12:14:39
为啥不能让父母参与自己生意?网友:让你妈别去了,省得生意变差

为啥不能让父母参与自己生意?网友:让你妈别去了,省得生意变差

解读热点事件
2026-03-31 00:05:08
你敢信吗?太湖底下有2.3米厚的淤泥,可上面才盖着不到1.9米的水

你敢信吗?太湖底下有2.3米厚的淤泥,可上面才盖着不到1.9米的水

掠影后有感
2026-04-01 20:26:07
这么大碗面条,慢慢吃!!

这么大碗面条,慢慢吃!!

风子说个球
2026-04-01 14:33:39
爆了!打出来了!33分10板10助4断!开拓者快交易杨瀚森!

爆了!打出来了!33分10板10助4断!开拓者快交易杨瀚森!

贵圈真乱
2026-04-06 11:35:40
沦为共享单车的女色虎

沦为共享单车的女色虎

深度报
2026-03-05 22:39:27
沙特阿拉伯、俄罗斯、伊拉克、阿联酋、科威特、哈萨克斯坦、阿尔及利亚和阿曼等8个主要产油国决定5月日均增产原油20.6万桶

沙特阿拉伯、俄罗斯、伊拉克、阿联酋、科威特、哈萨克斯坦、阿尔及利亚和阿曼等8个主要产油国决定5月日均增产原油20.6万桶

潇湘晨报
2026-04-06 08:53:09
1982年血色使馆:中国外交官唐健生为了生存杀光了所有同事

1982年血色使馆:中国外交官唐健生为了生存杀光了所有同事

阿校谈史
2026-03-20 11:03:27
大女主的美:不是强大,是完整

大女主的美:不是强大,是完整

疾跑的小蜗牛
2026-04-05 23:36:01
斯诺克世锦赛:中国2将创纪录!世界冠军或翻车,常冰玉收大礼!

斯诺克世锦赛:中国2将创纪录!世界冠军或翻车,常冰玉收大礼!

刘姚尧的文字城堡
2026-04-07 07:42:49
超大单!英伟达220万张、华为81.2万张、阿里26.5万张

超大单!英伟达220万张、华为81.2万张、阿里26.5万张

最通信
2026-04-05 20:57:07
输给山东队13分!杜锋犯了3个错误,坑惨了广东队

输给山东队13分!杜锋犯了3个错误,坑惨了广东队

体育哲人
2026-04-06 23:51:07
打破“四驾马车”惯例,越南强人能否改变国家命运?

打破“四驾马车”惯例,越南强人能否改变国家命运?

爱下厨的阿酾
2026-04-06 15:41:15
2026-04-07 08:52:49
javascript知识园
javascript知识园
javascript编程知识分享,JS加密、JS混淆等等。
208文章数 423关注度
往期回顾 全部

科技要闻

年化营收300亿美元!Anthropic砸算力大单

头条要闻

台军退役中将:郑丽文不去大陆 台湾就是死水一潭

头条要闻

台军退役中将:郑丽文不去大陆 台湾就是死水一潭

体育要闻

官方:中国女足球员邵子钦加盟本菲卡

娱乐要闻

唐嫣罗晋新加坡遛娃,6岁女儿身高抢镜

财经要闻

2026年,全国租房市场还有波降价潮

汽车要闻

阿维塔06T快上市了 旅行车还能这么玩?

态度原创

教育
时尚
手机
健康
军事航空

教育要闻

忻州市关工委、教育局联合在忻州五中召开校家社协同育人推进会

伊姐清明热推:电视剧《冰湖重生》;电视剧《月鳞绮纪》......

手机要闻

曝苹果首款折叠屏手机已在试产;问界新M9无伪装实车上路

干细胞抗衰4大误区,90%的人都中招

军事要闻

伊朗:在C-130运输机残骸中发现一具美军士兵遗体

无障碍浏览 进入关怀版