四时宝库

程序员的知识宝库

jAVASCRIPT代码混淆插件的正确使用

1、JavaScriptObfuscator

https://github.com/lrusso/JavaScriptObfuscator
// 在线转换地址
https://lrusso.github.io/JavaScriptObfuscator/JavaScriptObfuscator.htm

2、jsfuck

https://github.com/aemkei/jsfuck

3、terser

https://github.com/terser/terser

4、UglifyJS

https://github.com/mishoo/UglifyJS

如何混淆代码的:同terser

收费混淆工具

1、jscrambler

https://jscrambler.com/
// webpack
https://jscrambler.com/blog/protect-your-code-while-using-webpack

2、jshaman

在线转换工具,官方文档介绍购买后可以提供API,或提供私有化部署

http://www.jshaman.com/

3、stunnix

http://stunnix.com/store/
// 安装向导
http://stunnix.com/support/doc/jo/install-guide.shtml
// 使用教程
https://www.cnblogs.com/zzugyl/p/4204387.html

当然还有其它的混淆工具,好多热度也不高或者N多年没有维护,这里就不一一列举了。

通过对比,这里着重介绍这两个terser,UglifyJS

集成使用

现在基本都是vue、react项目,都会使用webpack、vite等管理工具,所以terser,UglifyJS也是以插件的形式放到webpack、vite统一配置使用。

webpack方式

1、terser-webpack-plugin

https://webpack.docschina.org/plugins/terser-webpack-plugin/
npm install terser-webpack-plugin --save-dev

2、uglifyjs-webpack-plugin

https://v4.webpack.js.org/plugins/uglifyjs-webpack-plugin/
npm install uglifyjs-webpack-plugin --save-dev


vite方式

1、rollup-plugin-terser

npm install rollup-plugin-terser --save-dev
import { defineConfig } from 'vite';
import { terser } from 'rollup-plugin-terser';
export default defineConfig({
  plugins: [terser()],
});


2、rollup-plugin-obfuscator

https://github.com/getkey/rollup-plugin-obfuscator
https://github.com/javascript-obfuscator/javascript-obfuscator
npm install --save-dev rollup-plugin-obfuscator javascript-obfuscator
or
yarn add --dev rollup-plugin-obfuscator javascript-obfuscator
如果打包报错,试一下
yarn add javascript-obfuscator -D

4、在vite.config.ts中配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import obfuscator from 'rollup-plugin-obfuscator';
export default defineConfig({
  // base: "",
  build: {
    minify: 'esbuild', // 默认
  },
  esbuild: {
    drop: ['console', 'debugger'],//打包去除
  },
  plugins: [
    vue(),
    obfuscator({
      global:false,
      // options配置项实际为 javascript-obfuscator 选项,具体可查看https://github.com/javascript-obfuscator/javascript-obfuscator
      options: {
        compact: true,
        controlFlowFlattening: true,
        controlFlowFlatteningThreshold: 0.75,
        numbersToExpressions: true,
        simplify: true,
        stringArrayShuffle: true,
        splitStrings: true,
        splitStringsChunkLength: 10,
        rotateUnicodeArray: true,
        deadCodeInjection: true,
        deadCodeInjectionThreshold: 0.4,
        debugProtection: false,
        debugProtectionInterval: 2000,
        disableConsoleOutput: true,
        domainLock: [],
        identifierNamesGenerator: "hexadecimal",
        identifiersPrefix: "",
        inputFileName: "",
        log: true,
        renameGlobals: true,
        reservedNames: [],
        reservedStrings: [],
        seed: 0,
        selfDefending: true,
        sourceMap: false,
        sourceMapBaseUrl: "",
        sourceMapFileName: "",
        sourceMapMode: "separate",
        stringArray: true,
        stringArrayEncoding: ["base64"],
        stringArrayThreshold: 0.75,
        target: "browser",
        transformObjectKeys: true,
        unicodeEscapeSequence: true,

        domainLockRedirectUrl: "about:blank",
        forceTransformStrings: [],
        identifierNamesCache: null,
        identifiersDictionary: [],
        ignoreImports: true,
        optionsPreset: "default",
        renameProperties: false,
        renamePropertiesMode: "safe",
        sourceMapSourcesMode: "sources-content",
       
        stringArrayCallsTransform: true,
        stringArrayCallsTransformThreshold: 0.5,
       
        stringArrayIndexesType: ["hexadecimal-number"],
        stringArrayIndexShift: true,
        stringArrayRotate: true,
        stringArrayWrappersCount: 1,
        stringArrayWrappersChainedCalls: true,
        stringArrayWrappersParametersMaxCount: 2,
        stringArrayWrappersType: "variable",
      }
    })
  ]
})

————————————

昔闻洞庭水,今上岳阳楼。

吴楚东南坼,乾坤日夜浮。
亲朋无一字,老病有孤舟。
戎马关山北,凭轩涕泗流。

- 登岳阳楼 【唐】杜甫

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接