electron-egg electron-egg
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
首页
  • v4.x
  • v3.x
  • v2.x
插件
  • v4.x
  • v3.x
demo
支持
知识点
案例
交流
  • GitHub (opens new window)
  • Gitee (opens new window)
❤️成为赞助商
  • 快速入门

  • 基础功能

  • 生成软件

    • 构建
    • 代码加密
      • 图标修改
    • 升级

    目录

    代码加密

    要求:ee-core: v1.2.10 目前框架支持两种代码加密,分别为 字节码加密 和 压缩混淆加密。

    # 打包时,过滤源代码

    注:未使用加密,请删除 "!electron/" 。 打开package.json文件,修改 build.files 数组属性,添加 "!electron/",如下:

    "build": {
      ......
      "asar": true,
      "files": [
        "**/*",
        "!frontend/", // 过滤前端源码
        "!run/",
        "!logs/",
        "!data/",
        "!electron/" // 过滤electron文件夹;如果没有使用加密功能,请删除
      ],
      ......
    }  
    

    # 加密配置文件

    ee-core: v1.3.2

    文件 ./electron/config/encrypt.js

    module.exports = {
      type: 'bytecode', // 加密类型:bytecode | confusion | strict
      directory: [			// 需要加密的目录
        'electron'      
      ],
      fileExt: ['.js'], // 需要加密的文件后缀,暂时只支持js,后续待扩展
    	confusionOptions: {}
    };
    

    # type

    • bytecode 字节码加密
    • confusion 压缩混淆加密
    • strict 先混淆加密,然后字节码加密

    # 加密后文件位置

    加密后,文件在 ./public/electron 里面,请注意业务代码中,文件引入路径。

    注:dev环境(或 未使用加密功能的prod环境)使用 ./electron 代码,prod环境使用 ./public/electron代码。

    # 方式一:字节码加密 - bytecode

    什么是字节码加密? 字节码是一种源码编译后的中间表示,类似汇编,是虚拟机执行的指令。逆向(反)编译的难度和传统编译型语言差不多。

    # 代码要求:

    控制器controller和服务层service代码要求加入toString()方法,用来识别加密后的 .jsc (class)模块。如:ExampleController 控制器

    # 添加 toString() 方法,返回内容为 类的字符串表示
    ExampleController.toString = () => '[class ExampleController]';
    
    # 导出模块
    module.exports = ExampleController;
    

    # 构建要求:

    • 如果交叉构建的软件运行报错,那么在对应平台构建,操作如下
    • 在windows-32-bit 操作系统上构建:npm run build-w (32位)
    • 在windows-64-bit 操作系统上构建:npm run build-w-64 (64位)
    • 在MacOS-amd 操作系统上构建:npm run build-m
    • 在MacOS-arm 操作系统上构建:npm run build-m-arm64 (m1芯片架构)
    • Linux平台分发版较多,请自行测试

    # 方式二:压缩混淆加密 - confusion

    ee-core: v1.4.0

    当使用此版本时,框架使用 javascript-obfuscator 加密代码,非常强大,效果好。

    混淆配置

    ee-core: v1.4.1

    # electron/config/encrypt.js
    
    confusionOptions: {
      compact: true, // 将代码压缩为1行        
      stringArray: true, // 删除字符串文本并将其放置在特殊数组中
      stringArrayEncoding: ['base64'], // 对stringArray编码 'none', 'base64', 'rc4',增加安全性
      deadCodeInjection: false, // 是否注入死代码,代码体积变大。
    }
    

    # 代码要求:无

    # 构建要求:

    • 可在windows-64-bit 操作系统上,同时构建 32位 和 64位应用。
    • 其它如上。

    # 注意

    如果加密生成的代码无法运行,请多次 执行 npm run encrypt 原因:加密后代码混淆很大,可能触发某些关键字或者字符编码,导致代码无法正常读取。

    # 方式三:压缩混淆加密 strict

    需要:ee-core: v1.4.0

    先 压缩混淆加密,然后 字节码加密,代码更加安全。

    # 注意

    问题同上

    上次更新: 2025/04/10, 03:07:49
    构建
    图标修改

    ← 构建 图标修改→

    Theme by Vdoing | Copyright © 2023-2025 哆啦好梦 | 京ICP备15041380号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×