首页 > 编程语言 >javascript-obfuscator混淆

javascript-obfuscator混淆

时间:2024-06-18 12:31:31浏览次数:12  
标签:混淆 false obfuscator deadCodeInjection javascript js 0.75 true

安装

npm install javascript-obfuscator -g

配置

重度混淆,性能低

性能下降50-100%

{  
    "compact": true,  
    "controlFlowFlattening": true,  
    "controlFlowFlatteningThreshold": 0.75, // 设置为0到1之间的值  
    "deadCodeInjection": true,  
    "deadCodeInjectionThreshold": 0.4, // 设置为0到1之间的值  
    "debugProtection": true,  
    "debugProtectionInterval": 1000, // 设置为一个正整数,表示毫秒数  
    "disableConsoleOutput": true,  
    "identifierNamesGenerator": "hexadecimal",  
    "log": false,  
    "numbersToExpressions": true,  
    "renameGlobals": false,  
    "rotateStringArray": true,  
    "selfDefending": true,  
    "shuffleStringArray": true,  
    "simplify": true,  
    "splitStrings": true,  
    "splitStringsChunkLength": 5,  
    "stringArray": true,  
    "stringArrayEncoding": ["rc4"], // 确保编码类型是有效的  
    "stringArrayIndexShift": true,  
    "stringArrayWrappersCount": 5,  
    "stringArrayWrappersChainedCalls": true,  
    "stringArrayWrappersParametersMaxCount": 5,  
    "stringArrayWrappersType": "function",  
    "stringArrayThreshold": 0.75, // 设置为0到1之间的值  
    "transformObjectKeys": true,  
    "unicodeEscapeSequence": false  
}

中度压缩,最佳性能

性能下降30-35%

{  
    "compact": true,  
    "controlFlowFlattening": true,  
    "controlFlowFlatteningThreshold": 0.75,  
    "deadCodeInjection": true,  
    "deadCodeInjectionThreshold": 0.4,  
    "debugProtection": false,  
    "disableConsoleOutput": true,  
    "identifierNamesGenerator": "hexadecimal",  
    "log": false,  
    "numbersToExpressions": true,  
    "renameGlobals": false,  
    "rotateStringArray": true,  
    "selfDefending": true,  
    "shuffleStringArray": true,  
    "simplify": true,  
    "splitStrings": true,  
    "splitStringsChunkLength": 10,  
    "stringArray": true,  
    "stringArrayEncoding": ["base64"],  
    "stringArrayIndexShift": true,  
    "stringArrayWrappersCount": 2,  
    "stringArrayWrappersChainedCalls": true,  
    "stringArrayWrappersParametersMaxCount": 4,  
    "stringArrayWrappersType": "function",  
    "stringArrayThreshold": 0.75,  
    "transformObjectKeys": true,  
    "unicodeEscapeSequence": false  
}

轻度压缩,高性能

性能略低于压缩之前

{  
    "compact": true,  
    "controlFlowFlattening": false,  
    "deadCodeInjection": false,  
    "debugProtection": false,  
    "disableConsoleOutput": true,  
    "identifierNamesGenerator": "hexadecimal",  
    "log": false,  
    "numbersToExpressions": false,  
    "renameGlobals": false,  
    "rotateStringArray": true,  
    "selfDefending": true,  
    "shuffleStringArray": true,  
    "simplify": true,  
    "splitStrings": false,  
    "stringArray": true,  
    "stringArrayEncoding": [], // 你可以根据需要添加支持的编码算法,如 ["base64", "rc4"]  
    "stringArrayIndexShift": true,  
    "stringArrayWrappersCount": 1,  
    "stringArrayWrappersChainedCalls": true,  
    "stringArrayWrappersParametersMaxCount": 2,  
    "stringArrayWrappersType": "variable",  
    "stringArrayThreshold": 0.75,  
    "unicodeEscapeSequence": false  
}

默认值,高性能

{  
    "compact": true,  
    "controlFlowFlattening": false,  
    "deadCodeInjection": false,  
    "debugProtection": false,  
    "disableConsoleOutput": false,  
    "identifierNamesGenerator": "hexadecimal",  
    "log": false,  
    "numbersToExpressions": false,  
    "renameGlobals": false,  
    "rotateStringArray": true,  
    "selfDefending": false,  
    "shuffleStringArray": true,  
    "simplify": true,  
    "splitStrings": false,  
    "stringArray": true,  
    "stringArrayEncoding": [],  
    "stringArrayIndexShift": true,  
    "stringArrayWrappersCount": 1,  
    "stringArrayWrappersChainedCalls": true,  
    "stringArrayWrappersParametersMaxCount": 2,  
    "stringArrayWrappersType": "variable",  
    "stringArrayThreshold": 0.75,  
    "unicodeEscapeSequence": false  
}

执行

混淆整个目录里的js

javascript-obfuscator ./js --output ./js/obfuscated --config obfuscator.json

混淆单个js

javascript-obfuscator index.af5ba3a0.js --output index.af5ba3a011111.js --config obfuscator.json

标签:混淆,false,obfuscator,deadCodeInjection,javascript,js,0.75,true
From: https://blog.csdn.net/weixin_50108122/article/details/139751745

相关文章

  • JavaScript ES6 新特性探索:Proxy 解锁编程新境界
    个人主页:学习前端的小z个人专栏:JavaScript精粹本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论!ES5、ES6介绍文章目录......
  • javaScript获取dom元素的常见方法
    前端开发都知道在react、vue等框架没问世之前,开发人员要实现用户对网页元素进行操作时,其中就包括dom元素的选择,不可避免的就是要获取到目标元素再接着编写功能代码。废话少说让我们来看看javaScript获取dom元素的常见方法元素js获取dom元素的方法常有以下几种:1.两个......
  • 如何使用JavaScript实现在线Excel附件的上传与下载?
    前言在本地使用Excel时,经常会有需要在Excel中添加一些附件文件的需求,例如在Excel中附带一些Word,CAD图等等。同样的,类比到Web端,现在很多人用的在线Excel是否也可以像本地一样实现附件文件的操作呢?答案是肯定的,不过和本地不同的是,Web端不会直接打开附件,而是使用超链接单元格的形式......
  • 深入探讨JavaScript的执行机制
    预编译首先下面这段代码的执行是一个怎样的结果呢?showName();console.log(MyName);varMyName='小陈同学'functionshowName(){console.log('函数showName被执行');}在这段代码中我们声明了一个变量MyName和一个函数showName,调用函数,打印MyName因为在函......
  • 45.JavaScript基础【三】
    【一】JavaScript之函数1)函数声明函数须先声明,才能使用函数声明时不会立即执行,只有调用时才会执行function函数名(参数1,参数2){ 代码体}2)函数调用函数名()函数的执行与定位位置无关,只与调用位置有关可多次调用,每次调用都是独立不相关的3)函数分类1.无......
  • 44.JavaScript基础【二】
    【一】JavaScript之运算符1)算术运算符加法:+减法:-乘法:*除法:/优先运算:()取余:%特殊NaNNaN参与的运算结果全是NaN隐式转化null转成0undefined转成NaN2)比较运算符>大于<小于<=小于等于>=大于等于==相等!=不相等===全等与相等区别在于会判断数据......
  • 43.JavaScript基础【一】
    【一】JavaScript1)介绍也是一门编程语言,他可以写后端代码JS是由ECMAScript、DOM、BOM组成JS是运行在浏览器脚本的语言2)注释语法//单行注释/*多行注释多行注释*/3)js代码的书写位置head头里面的script标签中写在body体最下面直接常见一个js脚本文件,......
  • 47.JavaScript基础【五】
    【一】什么是jQuery1)概述是一个轻量的、兼容多浏览器的JavaScript的第三方库其内部封装了JS代码、能通过更少的代码操作DOM对象提高了代码效率、简化了代码量2)优势轻量级的JS框架丰富的DOM选择器链式表达式事件、样式、动画支持Ajax操作支持跨浏览器兼容插件扩展开......
  • 46.JavaScript基础【四】
    【一】弹出框是网页开发中常用的交互组件,用于显示警告、确认或提示,并于用户进行交互1)警告框用于向用户显示一条重要的警告信息通常包含一个确认按钮用于关闭alert("警告提示框")2)确认框用于向用户询问一个问题或确认某个操作通常包含一个确认按钮和一个取消......
  • [javascript]何为变量提升?
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18252500出自【进步*于辰的博客】关于编译与解释,详述可查阅博文《[Java]知识点》中的【编译与解释】一栏。参考笔记二,P43.3、P46.1、P9.3。目录1、什么是“变量提升?2、va......