obfuscate-main.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const fs = require('fs');
  2. const path = require('path');
  3. const JavaScriptObfuscator = require('javascript-obfuscator');
  4. // 指定要混淆的文件
  5. const mainFilePath = path.join(__dirname, 'electron.js');
  6. const distFilePath = path.join(__dirname, 'build', 'electron.js');
  7. // 读取 `main.js` 文件内容
  8. const fileContent = fs.readFileSync(mainFilePath, 'utf8');
  9. // 配置混淆选项
  10. const obfuscationResult = JavaScriptObfuscator.obfuscate(fileContent, {
  11. compact: true,
  12. controlFlowFlattening: true,
  13. controlFlowFlatteningThreshold: 0.75,
  14. deadCodeInjection: true,
  15. deadCodeInjectionThreshold: 0.4,
  16. debugProtection: true,
  17. debugProtectionInterval: 3000,
  18. disableConsoleOutput: false,
  19. identifierNamesGenerator: 'hexadecimal',
  20. renameGlobals: false,
  21. selfDefending: true,
  22. stringArray: true,
  23. stringArrayEncoding: ['base64'],
  24. stringArrayThreshold: 0.75,
  25. transformObjectKeys: true,
  26. unicodeEscapeSequence: false,
  27. });
  28. if (!fs.existsSync(path.dirname(distFilePath))) {
  29. fs.mkdirSync(path.dirname(distFilePath), { recursive: true });
  30. }
  31. // 将混淆后的代码写入 `dist/main.js`
  32. fs.writeFileSync(distFilePath, obfuscationResult.getObfuscatedCode());
  33. console.log(`Successfully obfuscated ${mainFilePath} to ${distFilePath}`);