浏览代码

Random generator now configure before resolve of JavascriptObfuscator object

sanex3339 8 年之前
父节点
当前提交
c6de759667

文件差异内容过多而无法显示
+ 237 - 236
dist/index.js


+ 10 - 1
src/JavaScriptObfuscator.ts

@@ -4,15 +4,18 @@ if (!(<any>global)._babelPolyfill) {
     require('babel-polyfill');
 }
 
+import { ServiceIdentifiers } from './container/ServiceIdentifiers';
+
 import { TInputOptions } from './types/options/TInputOptions';
 
 import { IInversifyContainerFacade } from './interfaces/container/IInversifyContainerFacade';
 import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
 import { IObfuscationResult } from './interfaces/IObfuscationResult';
+import { IOptions } from './interfaces/options/IOptions';
 
 import { InversifyContainerFacade } from './container/InversifyContainerFacade';
 import { JavaScriptObfuscatorCLI } from './cli/JavaScriptObfuscatorCLI';
-import { ServiceIdentifiers } from './container/ServiceIdentifiers';
+import { RandomGeneratorUtils } from './utils/RandomGeneratorUtils';
 
 export class JavaScriptObfuscator {
     /**
@@ -22,6 +25,12 @@ export class JavaScriptObfuscator {
      */
     public static obfuscate (sourceCode: string, inputOptions: TInputOptions = {}): IObfuscationResult {
         const inversifyContainerFacade: IInversifyContainerFacade = new InversifyContainerFacade(inputOptions);
+        const options: IOptions = inversifyContainerFacade.get<IOptions>(ServiceIdentifiers.IOptions);
+
+        if (options.seed !== 0) {
+            RandomGeneratorUtils.setRandomGeneratorSeed(options.seed);
+        }
+
         const javaScriptObfuscator: IJavaScriptObfuscator = inversifyContainerFacade
             .get<IJavaScriptObfuscator>(ServiceIdentifiers.IJavaScriptObfuscator);
 

+ 1 - 7
src/JavaScriptObfuscatorInternal.ts

@@ -5,15 +5,13 @@ import * as esprima from 'esprima';
 import * as escodegen from 'escodegen';
 import * as ESTree from 'estree';
 
+import { IGeneratorOutput } from './interfaces/IGeneratorOutput';
 import { IJavaScriptObfuscator } from './interfaces/IJavaScriptObfsucator';
 import { IObfuscationResult } from './interfaces/IObfuscationResult';
 import { IObfuscator } from './interfaces/IObfuscator';
-import { IGeneratorOutput } from './interfaces/IGeneratorOutput';
 import { IOptions } from './interfaces/options/IOptions';
 import { ISourceMapCorrector } from './interfaces/ISourceMapCorrector';
 
-import { RandomGeneratorUtils } from './utils/RandomGeneratorUtils';
-
 @injectable()
 export class JavaScriptObfuscatorInternal implements IJavaScriptObfuscator {
     /**
@@ -102,10 +100,6 @@ export class JavaScriptObfuscatorInternal implements IJavaScriptObfuscator {
      * @returns {IObfuscationResult}
      */
     public obfuscate (sourceCode: string): IObfuscationResult {
-        if (this.options.seed !== 0) {
-            RandomGeneratorUtils.setRandomGeneratorSeed(this.options.seed);
-        }
-
         // parse AST tree
         const astTree: ESTree.Program = esprima.parse(sourceCode, JavaScriptObfuscatorInternal.esprimaParams);
 

+ 4 - 4
src/custom-nodes/string-array-nodes/group/StringArrayCustomNodeGroup.ts

@@ -105,11 +105,11 @@ export class StringArrayCustomNodeGroup extends AbstractCustomNodeGroup {
         const stringArrayCallsWrapper: ICustomNode = this.customNodeFactory(CustomNodes.StringArrayCallsWrapper);
         const stringArrayRotateFunctionNode: ICustomNode = this.customNodeFactory(CustomNodes.StringArrayRotateFunctionNode);
 
-        const reversedStorageId = Array.from(this.stringArrayStorage.getStorageId()).reverse().join('');
-        const stringArrayName: string = `_${Utils.hexadecimalPrefix}${this.stringArrayStorage.getStorageId()}`;
-        const stringArrayCallsWrapperName: string = `_${Utils.hexadecimalPrefix}${reversedStorageId}`;
+        const stringArrayStorageId: string = this.stringArrayStorage.getStorageId();
+        const reversedStorageId = Array.from(stringArrayStorageId).reverse().join('');
 
-        console.log(stringArrayCallsWrapperName);
+        const stringArrayName: string = `_${Utils.hexadecimalPrefix}${stringArrayStorageId}`;
+        const stringArrayCallsWrapperName: string = `_${Utils.hexadecimalPrefix}${reversedStorageId}`;
 
         let stringArrayRotateValue: number;
 

+ 1 - 1
src/storages/string-array/StringArrayStorage.ts

@@ -36,4 +36,4 @@ export class StringArrayStorage extends ArrayStorage <string> {
             return `'${value}'`;
         }).toString();
     }
-}
+}

部分文件因为文件数量过多而无法显示