JS超好用的免费混淆工具

在线混淆地址:https://obfuscator.io/

也可自己下载源码本地使用,地址:https://github.com/javascript-obfuscator/javascript-obfuscator

简单翻译一下该工具下载到本地后的使用方法:

安装 npm install --save-dev -g javascript-obfuscator

javascript-obfuscator xx.js 混淆xx.js文件,生成的文件和xx.js同目录

参数解释:

-v, --version 当前版本

-h, --help 帮助



-o, --output 输出目录



--compact <boolean=false>  是否压缩



--config <string=''> 包含混淆器选项的JS / JSON配置文件的名称。这些将被直接传递给CLI的选项覆盖



--control-flow-flattening <boolean=false> 此选项极大地影响了运行速度降低1.5倍的性能。



--control-flow-flattening-threshold <number=0.75 Min: 0 Max: 1> 使用controlFlowFlatteningThreshold设置将受控制流展平影响的节点百分比。启用代码控制流展平。控制流扁平化是源代码的结构转换,阻碍了程序理解



--dead-code-injection <boolean=false> 显着增加混淆代码的大小(最多200%),仅在混淆代码的大小无关紧要时使用。使用deadCodeInjectionThreshold设置将受死代码注入影响的节点百分比。

                                        ⚠️此选项强制启用stringArray选项。使用此选项,随机的死代码块将添加到混淆代码中



--dead-code-injection-threshold <number=0.4 Min: 0 Max: 1> 允许设置受deadCodeInjection影响的节点百分比



--debug-protection <boolean=false> 如果您打开开发者工具,可以冻结您的浏览器,用来调试用



--debug-protection-interval <boolean=false> 可以冻结你的浏览器!使用风险自负



--disable-console-output <boolean = false> 通过用空函数替换它们来禁用console.log,console.info,console.error,console.warn,console.debug,console.exception和console.trace。这使得调试器的使用更加困难。



--domain-lock '<list>' (Type: string[] Default: []) 锁定混淆的源代码,使其仅在特定域和/或子域上运行。这使得有人只需复制并粘贴源代码并在别处运行就变得非常困难



--exclude '<list>' (Type: string[] Default: []) 文件名或globs,表示要从混淆中排除的文件。



--identifier-names-generator <string> [hexadecimal, mangled. Default: hexadecimal] 设置标识符名称生成器



--identifiers-prefix <string=''> 设置所有全局标识符的前缀。如果要混淆多个文件,请使用此选项。此选项有助于避免这些文件的全局标识符之间发生冲突。每个文件的前缀应该不同



--log <boolean=false> 允许将信息记录到控制台。



--rename-globals <boolean = false> ⚠️此选项可能会破坏您的代码。只有在您知道它的作用时才启用它!使用声明启用全局变量和函数名称的混淆



--reserved-names '<list>' (Type: string[] Default: []) 禁用模糊处理和生成标识符,这些标识符与传递的RegEx模式匹配



--reserved-strings '<list>' (Type: string[] Default: []) 禁用字符串文字的转换,与传递的RegEx模式匹配



--rotate-string-array <boolean = true> ⚠️必须启用StringArray功能先,将stringArray数组移位固定和随机(在代码混淆时生成)的位置。这使得将删除的字符串的顺序与其原始位置相匹配变得更加困难



--seed <number=0> 此选项为随机生成器设置种子。这对于创建可重复的结果很有用。如果种子为0  - 随机生成器将在没有种子的情况下工作



--self-defending <boolean=false> 使用此选项进行模糊处理后,请勿以任何方式更改模糊代码,因为任何更改代码都会触发自我防御,代码将不再起作用!

    ⚠️此选项强制将紧凑值设置为true此选项使输出代码对格式化和变量重命名具有弹性。如果试图在混淆代码上使用JavaScript美化器,代码将不再起作用,使其更难理解和修改



--source-map <boolean=false> 为混淆代码启用源映射生成。源映射可以帮助您调试混淆的JavaScript源代码。如果您希望或需要在生产中进行调试,可以将单独的源映射文件上载到秘密位置,然后将浏览器指向该位置



--source-map-base-url <string=''> 当sourceMapMode:'separate'时,将基本URL设置为源映射导入URL



--source-map-file-name <string=''> 当sourceMapMode:'separate'时设置输出源映射的文件名



--source-map-mode <string> [inline, Default=separate] 指定源映射生成模式



--string-array <boolean=true> 删除字符串文字并将它们放在一个特殊的数组中。例如,var m =“Hello World”中的字符串“Hello World”;将被替换为var m = _0x12c456 [0x1]



--string-array-encoding <boolean|string> [true, default=false, default=base64, rc4] 此选项可能会降低脚本速度。使用base64或rc4对stringArray的所有字符串文字进行编码,并插入用于在运行时对其进行解码的特殊代码。



--string-array-threshold <number=0.8 Min: 0 Max: 1> 您可以使用此设置调整字符串文字将插入stringArray的概率(从0到1)。此设置对于大型代码大小特别有用,因为它反复调用字符串数组并可能减慢代码速度



--target <string> [Default=browser, browser-no-eval, node] 允许为混淆代码设置目标环境



--transform-object-keys <boolean=false> 启用对象键的转换



--unicode-escape-sequence <boolean=false> 允许启用/禁用字符串转换为unicode转义序列。Unicode转义序列大大增加了代码大小,并且可以轻松地将字符串恢复为原始视图。建议仅对小型源代码启用此选项





下面是几个常用的混淆配置:



高度混淆,性能低

Performance will 50-100% slower than without obfuscation

{

compact: true,

controlFlowFlattening: true,

controlFlowFlatteningThreshold: 1,

deadCodeInjection: true,

deadCodeInjectionThreshold: 1,

debugProtection: true,

debugProtectionInterval: true,

disableConsoleOutput: true,

identifierNamesGenerator: 'hexadecimal',

log: false,

renameGlobals: false,

rotateStringArray: true,

selfDefending: true,

stringArray: true,

stringArrayEncoding: 'rc4',

stringArrayThreshold: 1,

transformObjectKeys: true,

unicodeEscapeSequence: false

}

中度混淆,性能较好

Performance will 30-35% slower than without obfuscation

{

compact: true,

controlFlowFlattening: true,

controlFlowFlatteningThreshold: 0.75,

deadCodeInjection: true,

deadCodeInjectionThreshold: 0.4,

debugProtection: false,

debugProtectionInterval: false,

disableConsoleOutput: true,

identifierNamesGenerator: 'hexadecimal',

log: false,

renameGlobals: false,

rotateStringArray: true,

selfDefending: true,

stringArray: true,

stringArrayEncoding: 'base64',

stringArrayThreshold: 0.75,

transformObjectKeys: true,

unicodeEscapeSequence: false

}

低度混淆,高性能

Performance will slightly slower than without obfuscation

{

compact: true,

controlFlowFlattening: false,

deadCodeInjection: false,

debugProtection: false,

debugProtectionInterval: false,

disableConsoleOutput: true,

identifierNamesGenerator: 'hexadecimal',

log: false,

renameGlobals: false,

rotateStringArray: true,

selfDefending: true,

stringArray: true,

stringArrayEncoding: false,

stringArrayThreshold: 0.75,

unicodeEscapeSequence: false

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: jsbeauty是一款js混淆工具,可以将js代码进行简单的格式化和重构,使之更易于阅读和理解。该工具可以对压缩后的js代码进行还原,同时也可以处理常见的混淆手段,如变量名替换、字符串转换、函数调用加密等。在混淆的同时,jsbeauty也会对代码进行格式化,使之符合一定的代码规范,方便开发者进行修改、调试或者进一步地优化。 jsbeauty的使用非常简单,只需要将需要混淆的代码复制到输入框中,然后点击“美化”按钮,即可得到混淆后的代码。工具支持多种输入格式,包括普通的纯文本、base64编码的字符串和url地址等。同时,jsbeauty也提供了一些高级选项,例如可以设置缩进字符、关闭自动格式化等功能,以实现更精准的混淆处理。 总之,jsbeauty是一款非常实用的js混淆工具,可以帮助开发者快速还原和理解压缩后的js代码,提高开发效率和代码质量。 ### 回答2: JSBeauty是一种JS混淆工具,可以帮助用户识别和还原混淆的JavaScript代码。JavaScript混淆是在代码中添加随机字符串或将变量名改为无意义的名称等行为,以增加代码的复杂性和保护代码。然而,这种混淆行为对于代码的阅读和理解造成了困难。 JSBeauty可以自动处理大部分常见的混淆技巧,例如删除无用代码、解密字符、解析代码及向解析等,以还原JavaScript的原始文件。该工具通过先进的算法实现代码混淆,从而帮助用户节省时间和提高代码可读性。 JSBeauty还具有易于理解的用户界面和简单易用的功能,可以处理单个文件或整个目录的代码,并可以将输出转换为HTML、XML或JSON格式,方便保存和分享。此外,JSBeauty还提供了一些可定制选项,以帮助用户自定义代码输出以符合特定的要求。 总之,JSBeauty是一种出色的JS混淆工具,几乎可以自动处理所有常见的混淆技巧,从而帮助用户提高代码可读性和理解程度。 ### 回答3: jsbeauty是一种JS混淆工具,它可以在混淆程序时非常有用。JS混淆是指恢复被混淆代码的原始形式,代码混淆通常是为了抵御恶意攻击者对代码的逆向工程。JS混淆技术的普遍应用使得像静态分析和动态调试这样的任务变得更加困难。因此,jsbeauty可以用来恢复混淆的代码,以便进行更好的JS分析和调试。 使用jsbeauty,可以将混淆后的代码转换为易于理解的形式。通过使用jsbeauty,程序员们可以简单地修改混淆后的代码,以了解它确切的操作。它还为您提供一个程序员友好的环境,并提供了许多有用的功能,如混淆和重构 另外,jsbeauty还可以通过改变JavaScript代码的格式来增强与编辑器的集成。这可以使代码更具可读性,更加易于维护,因为代码的布局更加清晰。总之,JSbeauty是一种非常有用的工具,使程序员们可以在处理JavaScript代码时更加方便和有效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值