? 一、安裝方法
- 1
??? 二、基本用法
原始文件 hello.js
- 1
- 2
- 3
- 4
執行混淆:
- 1
?? 三、常用命令行參數說明
參數 | 類型 | 默認值 | 說明 |
---|---|---|---|
--compact | boolean | true | 是否壓縮代碼,去除空格和換行 |
--controlFlowFlattening | boolean | false | 控制流扁平化,重構為狀態機邏輯,顯著提升混淆難度,但影響性能 |
--controlFlowFlatteningThreshold | number (0~1) | 0.75 | 控制多少比例的代碼節點被扁平化 |
--stringArray | boolean | true | 是否將字符串提取為數組項 |
--stringArrayEncoding | "base64" / "rc4" / false | false | 對字符串數組進行編碼,防止直接讀取 |
--splitStrings | boolean | false | 拆分長字符串為若干片段 |
--splitStringsChunkLength | number | 10 | 拆分后的最小字符串長度 |
--selfDefending | boolean | false | 添加防調試與反格式化保護 |
--transformObjectKeys | boolean | false | 混淆對象屬性名 |
--deadCodeInjection | boolean | false | 插入無用代碼增加逆向難度 |
--identifierNamesGenerator | "hexadecimal" / "mangled" / "dictionary" | "hexadecimal" | 變量和函數名混淆風格 - hexadecimal :生成形如 _0xabc123 的名字(默認)- mangled :生成短小的如 a , b , c 名稱- dictionary :使用自定義字典(配合 identifierNamesGeneratorDictionary ) |
?? 性能提示:controlFlowFlattening
?? 四、使用配置文件(推薦)
obfuscator-config.json
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
使用命令:
- 1
?? 五、批量混淆目錄
- 1
?? 六、實用示例合集
1?? 簡單壓縮
- 1
2?? 最大強度混淆(慎用)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
?? 七、常見問題與建議
?運行變慢?
?打包后報錯?
?是否推薦前端項目全面混淆?
?? 八、總結與最佳實踐
場景 | 建議配置 |
---|---|
開發調試 | 不混淆或僅壓縮 --compact true |
普通項目上線 | 使用字符串混淆與壓縮 |
有登錄校驗、反爬邏輯 | 加上 controlFlowFlattening 、stringArrayEncoding |
高保密需求(但可犧牲性能) | 所有混淆選項全開,閾值調高 |