[转载 · 小夏的随笔] Windows(obfuscator) 一键JS混淆加密

黄粱一梦2024-03-2721

Windows 一键JS混淆加密

安装环境

首先安装Node.js环境,然后在命令行中输入

npm install javascript-obfuscator -g

安装完成后,javascript-obfuscator就是一个独立的可执行命令了。

javascript-obfuscator -v

使用

混淆单个文件:

javascript-obfuscator input_file_name.js [options]
javascript-obfuscator input_file_name.js --output output_file_name.js [options]
javascript-obfuscator input_file_name.js --output output_folder_name [options]
javascript-obfuscator input_folder_name --output output_folder_name [options]

将单个扩展名为 .js 的输入文件混淆。
如果未使用 --output 选项指定目标路径,则混淆后的文件将保存在输入文件目录中,文件名为 INPUT_FILE_NAME-obfuscated.js。

简单使用

简单实用:

javascript-obfuscator input_file_name.js 
//执行上面的指令后,会生成input_file_name-obfuscated.js

批量操作

javascript-obfuscator ./ 
//采用递归的方式混淆当前目录下的所有js文件(包括子文件),在原js文件中进行修改。

javascript-obfuscator ./ -o ./data
//采用递归的方式混淆当前目录下的所有js文件(包括子文件),对原文件进行拷贝,会生成新的js文件,在新的js文件中进行修改。保存到同目录的data目录下

调用参数

-v, --version: 显示版本信息。

-h, --help: 显示帮助信息。

-o, --output: 指定输出路径。

--compact <boolean>: 是否压缩代码。

--config <string>: 指定配置文件路径。

--control-flow-flattening <boolean>: 是否对控制流进行扁平化。

--control-flow-flattening-threshold <number>: 控制流扁平化的阈值。

--dead-code-injection <boolean>: 是否进行死代码注入。

--dead-code-injection-threshold <number>: 死代码注入的阈值。

--debug-protection <boolean>: 是否启用调试保护。

--debug-protection-interval <number>: 调试保护的间隔。

--disable-console-output <boolean>: 是否禁用控制台输出。

--domain-lock '<list>': 域锁定,用于限制脚本在特定域上运行。

--domain-lock-redirect-url <string>: 域锁定重定向 URL。

--exclude '<list>': 排除的文件列表。

--force-transform-strings '<list>': 强制转换的字符串列表。

--identifier-names-cache-path <string>: 标识符名称缓存路径。

--identifier-names-generator <string>: 标识符名称生成器类型。

--identifiers-dictionary '<list>': 标识符字典列表。

--identifiers-prefix <string>: 标识符前缀。

--ignore-imports <boolean>: 是否忽略导入。

--log <boolean>: 是否记录日志。

--numbers-to-expressions <boolean>: 是否将数字转换为表达式。

--options-preset <string>: 预设选项。

--rename-globals <boolean>: 是否重命名全局变量。

--rename-properties <boolean>: 是否重命名属性。

--rename-properties-mode <string>: 属性重命名模式。

--reserved-names '<list>': 保留的名称列表。

--reserved-strings '<list>': 保留的字符串列表。

--seed <string|number>: 随机种子。

--self-defending <boolean>: 是否启用自我保护。

--simplify <boolean>: 是否简化代码。

--source-map <boolean>: 是否生成源映射。

--source-map-base-url <string>: 源映射基础 URL。

--source-map-file-name <string>: 源映射文件名。

--source-map-mode <string>: 源映射模式。

--source-map-sources-mode <string>: 源映射源模式。

--split-strings <boolean>: 是否拆分字符串。

--split-strings-chunk-length <number>: 拆分字符串的块长度。

--string-array <boolean>: 是否使用字符串数组。

--string-array-calls-transform <boolean>: 是否转换字符串数组调用。

--string-array-calls-transform-threshold <number>: 字符串数组调用转换的阈值。

--string-array-encoding '<list>': 字符串数组编码类型。

--string-array-indexes-type '<list>': 字符串数组索引类型。

--string-array-index-shift <boolean>: 是否进行字符串数组索引偏移。

--string-array-rotate <boolean>: 是否旋转字符串数组。

--string-array-shuffle <boolean>: 是否洗牌字符串数组。

--string-array-wrappers-count <number>: 字符串数组包装器数量。

--string-array-wrappers-chained-calls <boolean>: 是否允许字符串数组包装器链式调用。

--string-array-wrappers-parameters-max-count <number>: 字符串数组包装器参数最大数量。

--string-array-wrappers-type <string>: 字符串数组包装器类型。

--string-array-threshold <number>: 字符串数组阈值。

--target <string>: 目标环境。

--transform-object-keys <boolean>: 是否转换对象键。

--unicode-escape-sequence <boolean>: 是否使用 Unicode 转义序列。

分类:随笔

标签:转载

上一篇微信小程序scroll-view滚动scrollTop不准确下一篇Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’(phpStudy_pro)

版权声明

本文系作者 @黄粱一梦 转载请注明出处,文中若有转载的以及参考文章地址也需注明。\(^o^)/~

Preview