浏览代码

structure change: control-flow transformers and node obfuscators now are under `node-transformers` folder

sanex3339 8 年之前
父节点
当前提交
90e9a583cc
共有 35 个文件被更改,包括 446 次插入500 次删除
  1. 292 312
      dist/index.js
  2. 10 10
      src/Obfuscator.ts
  3. 4 10
      src/custom-nodes/control-flow-replacers-nodes/binary-expression-control-flow-replacer-nodes/BinaryExpressionFunctionNode.ts
  4. 0 32
      src/node-control-flow-transformers/AbstractNodeControlFlowTransformer.ts
  5. 1 1
      src/node-transformers/AbstractNodeTransformer.ts
  6. 14 14
      src/node-transformers/node-control-flow-transformers/FunctionControlFlowTransformer.ts
  7. 5 5
      src/node-transformers/node-control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts
  8. 4 4
      src/node-transformers/node-control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts
  9. 7 7
      src/node-transformers/node-obfuscators/CatchClauseObfuscator.ts
  10. 8 8
      src/node-transformers/node-obfuscators/FunctionDeclarationObfuscator.ts
  11. 7 7
      src/node-transformers/node-obfuscators/FunctionObfuscator.ts
  12. 7 7
      src/node-transformers/node-obfuscators/LabeledStatementObfuscator.ts
  13. 3 3
      src/node-transformers/node-obfuscators/LiteralObfuscator.ts
  14. 4 4
      src/node-transformers/node-obfuscators/MemberExpressionObfuscator.ts
  15. 4 4
      src/node-transformers/node-obfuscators/MethodDefinitionObfuscator.ts
  16. 5 5
      src/node-transformers/node-obfuscators/ObjectExpressionObfuscator.ts
  17. 8 8
      src/node-transformers/node-obfuscators/VariableDeclarationObfuscator.ts
  18. 3 3
      src/node-transformers/node-obfuscators/replacers/AbstractReplacer.ts
  19. 1 1
      src/node-transformers/node-obfuscators/replacers/BooleanLiteralReplacer.ts
  20. 1 1
      src/node-transformers/node-obfuscators/replacers/IdentifierReplacer.ts
  21. 1 1
      src/node-transformers/node-obfuscators/replacers/NumberLiteralReplacer.ts
  22. 5 5
      src/node-transformers/node-obfuscators/replacers/StringLiteralReplacer.ts
  23. 0 0
      test/fixtures/node-transformers/node-obfuscators/catch-clause-obfuscator/catch-clause-obfuscator.js
  24. 0 0
      test/fixtures/node-transformers/node-obfuscators/labeled-statement-obfuscator/labeled-statement-obfuscator.js
  25. 7 5
      test/functional-tests/node-transformers/node-obfuscators/CatchClauseObfuscator.spec.ts
  26. 3 3
      test/functional-tests/node-transformers/node-obfuscators/FunctionObfuscator.spec.ts
  27. 7 5
      test/functional-tests/node-transformers/node-obfuscators/LabeledStatementObfuscator.spec.ts
  28. 3 3
      test/functional-tests/node-transformers/node-obfuscators/LiteralObfuscator.spec.ts
  29. 3 3
      test/functional-tests/node-transformers/node-obfuscators/MemberExpressionObfuscator.spec.ts
  30. 3 3
      test/functional-tests/node-transformers/node-obfuscators/MethodDefinitionObfuscator.spec.ts
  31. 3 3
      test/functional-tests/node-transformers/node-obfuscators/ObjectExpressionObfuscator.spec.ts
  32. 3 3
      test/functional-tests/node-transformers/node-obfuscators/VariableDeclarationObfuscator.spec.ts
  33. 10 10
      test/index.spec.ts
  34. 5 5
      test/unit-tests/node-transformers/node-obfuscators/FunctionDeclarationObfuscator.spec.ts
  35. 5 5
      test/unit-tests/node-transformers/node-obfuscators/FunctionObfuscator.spec.ts

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


+ 10 - 10
src/Obfuscator.ts

@@ -12,24 +12,24 @@ import { IStackTraceData } from './interfaces/stack-trace-analyzer/IStackTraceDa
 import { AppendState } from './enums/AppendState';
 import { NodeType } from './enums/NodeType';
 
-import { CatchClauseObfuscator } from './node-obfuscators/CatchClauseObfuscator';
+import { CatchClauseObfuscator } from './node-transformers/node-obfuscators/CatchClauseObfuscator';
 import { ConsoleOutputNodesGroup } from './node-groups/ConsoleOutputNodesGroup';
 import { DebugProtectionNodesGroup } from './node-groups/DebugProtectionNodesGroup';
 import { DomainLockNodesGroup } from './node-groups/DomainLockNodesGroup';
-import { FunctionDeclarationObfuscator } from './node-obfuscators/FunctionDeclarationObfuscator';
-import { FunctionObfuscator } from './node-obfuscators/FunctionObfuscator';
-import { LabeledStatementObfuscator } from './node-obfuscators/LabeledStatementObfuscator';
-import { LiteralObfuscator } from './node-obfuscators/LiteralObfuscator';
-import { MemberExpressionObfuscator } from './node-obfuscators/MemberExpressionObfuscator';
-import { MethodDefinitionObfuscator } from './node-obfuscators/MethodDefinitionObfuscator';
+import { FunctionDeclarationObfuscator } from './node-transformers/node-obfuscators/FunctionDeclarationObfuscator';
+import { FunctionObfuscator } from './node-transformers/node-obfuscators/FunctionObfuscator';
+import { LabeledStatementObfuscator } from './node-transformers/node-obfuscators/LabeledStatementObfuscator';
+import { LiteralObfuscator } from './node-transformers/node-obfuscators/LiteralObfuscator';
+import { MemberExpressionObfuscator } from './node-transformers/node-obfuscators/MemberExpressionObfuscator';
+import { MethodDefinitionObfuscator } from './node-transformers/node-obfuscators/MethodDefinitionObfuscator';
 import { Node } from './node/Node';
 import { NodeUtils } from './node/NodeUtils';
-import { ObjectExpressionObfuscator } from './node-obfuscators/ObjectExpressionObfuscator';
+import { ObjectExpressionObfuscator } from './node-transformers/node-obfuscators/ObjectExpressionObfuscator';
 import { SelfDefendingNodesGroup } from './node-groups/SelfDefendingNodesGroup';
 import { StackTraceAnalyzer } from './stack-trace-analyzer/StackTraceAnalyzer';
 import { StringArrayNodesGroup } from './node-groups/StringArrayNodesGroup';
-import { VariableDeclarationObfuscator } from './node-obfuscators/VariableDeclarationObfuscator';
-import { FunctionControlFlowTransformer } from './node-control-flow-transformers/FunctionControlFlowTransformer';
+import { VariableDeclarationObfuscator } from './node-transformers/node-obfuscators/VariableDeclarationObfuscator';
+import { FunctionControlFlowTransformer } from './node-transformers/node-control-flow-transformers/FunctionControlFlowTransformer';
 
 export class Obfuscator implements IObfuscator {
     /**

+ 4 - 10
src/custom-nodes/control-flow-replacers-nodes/binary-expression-control-flow-replacer-nodes/BinaryExpressionFunctionNode.ts

@@ -6,12 +6,9 @@ import { IOptions } from '../../../interfaces/IOptions';
 
 import { AppendState } from '../../../enums/AppendState';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../preset-options/NoCustomNodesPreset';
-
 import { BinaryExpressionFunctionTemplate } from '../../../templates/custom-nodes/control-flow-replacers-nodes/binary-expression-control-flow-replacer-nodes/BinaryExpressionFunctionTemplate';
 
 import { AbstractCustomNode } from '../../AbstractCustomNode';
-import { JavaScriptObfuscator } from '../../../JavaScriptObfuscator';
 import { Utils } from '../../../Utils';
 
 export class BinaryExpressionFunctionNode extends AbstractCustomNode {
@@ -44,12 +41,9 @@ export class BinaryExpressionFunctionNode extends AbstractCustomNode {
      * @returns {string}
      */
     public getCode (): string {
-        return JavaScriptObfuscator.obfuscate(
-            format(BinaryExpressionFunctionTemplate(), {
-                functionName: Utils.getRandomVariableName(),
-                operator: this.operator
-            }),
-            NO_CUSTOM_NODES_PRESET
-        ).getObfuscatedCode();
+        return format(BinaryExpressionFunctionTemplate(), {
+            functionName: Utils.getRandomVariableName(1),
+            operator: this.operator
+        });
     }
 }

+ 0 - 32
src/node-control-flow-transformers/AbstractNodeControlFlowTransformer.ts

@@ -1,32 +0,0 @@
-import * as ESTree from 'estree';
-
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { INodeTransformer } from '../interfaces/INodeTransformer';
-import { IOptions } from '../interfaces/IOptions';
-
-export abstract class AbstractNodeControlFlowTransformer implements INodeTransformer {
-    /**
-     * @type Map <string, AbstractCustomNode>
-     */
-    protected nodes: Map <string, ICustomNode>;
-
-    /**
-     * @type {IOptions}
-     */
-    protected options: IOptions;
-
-    /**
-     * @param nodes
-     * @param options
-     */
-    constructor(nodes: Map <string, ICustomNode>, options: IOptions) {
-        this.nodes = nodes;
-        this.options = options;
-    }
-
-    /**
-     * @param node
-     * @param parentNode
-     */
-    public abstract transformNode (node: ESTree.Node, parentNode?: ESTree.Node): void;
-}

+ 1 - 1
src/node-obfuscators/AbstractNodeObfuscator.ts → src/node-transformers/AbstractNodeTransformer.ts

@@ -4,7 +4,7 @@ import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
 import { INodeTransformer } from '../interfaces/INodeTransformer';
 import { IOptions } from '../interfaces/IOptions';
 
-export abstract class AbstractNodeObfuscator implements INodeTransformer {
+export abstract class AbstractNodeTransformer implements INodeTransformer {
     /**
      * @type Map <string, AbstractCustomNode>
      */

+ 14 - 14
src/node-control-flow-transformers/FunctionControlFlowTransformer.ts → src/node-transformers/node-control-flow-transformers/FunctionControlFlowTransformer.ts

@@ -1,24 +1,24 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { TControlFlowReplacer } from '../types/TControlFlowReplacer';
-import { TStatement } from '../types/TStatement';
+import { TControlFlowReplacer } from '../../types/TControlFlowReplacer';
+import { TStatement } from '../../types/TStatement';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../interfaces/IOptions';
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/IOptions';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeControlFlowTransformer } from './AbstractNodeControlFlowTransformer';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { BinaryExpressionControlFlowReplacer } from './control-flow-replacers/BinaryExpressionControlFlowReplacer';
-import { ControlFlowStorage } from '../ControlFlowStorage';
-import { ControlFlowStorageNode } from '../custom-nodes/control-flow-storage-nodes/ControlFlowStorageNode';
-import { Node } from '../node/Node';
-import { NodeAppender } from '../node/NodeAppender';
-import { Utils } from '../Utils';
-import { NodeUtils } from '../node/NodeUtils';
-
-export class FunctionControlFlowTransformer extends AbstractNodeControlFlowTransformer {
+import { ControlFlowStorage } from '../../ControlFlowStorage';
+import { ControlFlowStorageNode } from '../../custom-nodes/control-flow-storage-nodes/ControlFlowStorageNode';
+import { Node } from '../../node/Node';
+import { NodeAppender } from '../../node/NodeAppender';
+import { Utils } from '../../Utils';
+import { NodeUtils } from '../../node/NodeUtils';
+
+export class FunctionControlFlowTransformer extends AbstractNodeTransformer {
     /**
      * @type {Map <string, IReplacer>}
      */

+ 5 - 5
src/node-control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts → src/node-transformers/node-control-flow-transformers/control-flow-replacers/AbstractControlFlowReplacer.ts

@@ -1,11 +1,11 @@
 import * as ESTree from 'estree';
 
-import { IControlFlowReplacer } from '../../interfaces/IControlFlowReplacer';
-import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../../interfaces/IOptions';
+import { IControlFlowReplacer } from '../../../interfaces/IControlFlowReplacer';
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/IOptions';
 
-import { ControlFlowStorage } from '../../ControlFlowStorage';
-import { Utils } from '../../Utils';
+import { ControlFlowStorage } from '../../../ControlFlowStorage';
+import { Utils } from '../../../Utils';
 
 export abstract class AbstractControlFlowReplacer implements IControlFlowReplacer {
     /**

+ 4 - 4
src/node-control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts → src/node-transformers/node-control-flow-transformers/control-flow-replacers/BinaryExpressionControlFlowReplacer.ts

@@ -1,12 +1,12 @@
 import * as escodegen from 'escodegen';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
 
 import { AbstractControlFlowReplacer } from './AbstractControlFlowReplacer';
-import { BinaryExpressionFunctionNode } from '../../custom-nodes/control-flow-replacers-nodes/binary-expression-control-flow-replacer-nodes/BinaryExpressionFunctionNode';
-import { ControlFlowStorage } from '../../ControlFlowStorage';
-import { ControlFlowStorageCallNode } from '../../custom-nodes/control-flow-replacers-nodes/binary-expression-control-flow-replacer-nodes/ControlFlowStorageCallNode';
+import { BinaryExpressionFunctionNode } from '../../../custom-nodes/control-flow-replacers-nodes/binary-expression-control-flow-replacer-nodes/BinaryExpressionFunctionNode';
+import { ControlFlowStorage } from '../../../ControlFlowStorage';
+import { ControlFlowStorageCallNode } from '../../../custom-nodes/control-flow-replacers-nodes/binary-expression-control-flow-replacer-nodes/ControlFlowStorageCallNode';
 
 export class BinaryExpressionControlFlowReplacer extends AbstractControlFlowReplacer {
     /**

+ 7 - 7
src/node-obfuscators/CatchClauseObfuscator.ts → src/node-transformers/node-obfuscators/CatchClauseObfuscator.ts

@@ -1,15 +1,15 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../interfaces/IOptions';
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/IOptions';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { IdentifierReplacer } from './replacers/IdentifierReplacer';
-import { Node } from '../node/Node';
-import { NodeUtils } from '../node/NodeUtils';
+import { Node } from '../../node/Node';
+import { NodeUtils } from '../../node/NodeUtils';
 
 /**
  * replaces:
@@ -19,7 +19,7 @@ import { NodeUtils } from '../node/NodeUtils';
  *     try {} catch (_0x12d45f) { console.log(_0x12d45f); };
  *
  */
-export class CatchClauseObfuscator extends AbstractNodeObfuscator {
+export class CatchClauseObfuscator extends AbstractNodeTransformer {
     /**
      * @type {IdentifierReplacer}
      */

+ 8 - 8
src/node-obfuscators/FunctionDeclarationObfuscator.ts → src/node-transformers/node-obfuscators/FunctionDeclarationObfuscator.ts

@@ -1,17 +1,17 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { TNodeWithBlockStatement } from '../types/TNodeWithBlockStatement';
+import { TNodeWithBlockStatement } from '../../types/TNodeWithBlockStatement';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../interfaces/IOptions';
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/IOptions';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { IdentifierReplacer } from './replacers/IdentifierReplacer';
-import { Node } from '../node/Node';
-import { NodeUtils } from '../node/NodeUtils';
+import { Node } from '../../node/Node';
+import { NodeUtils } from '../../node/NodeUtils';
 
 /**
  * replaces:
@@ -22,7 +22,7 @@ import { NodeUtils } from '../node/NodeUtils';
  *     function _0x12d45f () { //... };
  *     _0x12d45f();
  */
-export class FunctionDeclarationObfuscator extends AbstractNodeObfuscator {
+export class FunctionDeclarationObfuscator extends AbstractNodeTransformer {
     /**
      * @type {IdentifierReplacer}
      */

+ 7 - 7
src/node-obfuscators/FunctionObfuscator.ts → src/node-transformers/node-obfuscators/FunctionObfuscator.ts

@@ -1,15 +1,15 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../interfaces/IOptions';
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/IOptions';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { IdentifierReplacer } from './replacers/IdentifierReplacer';
-import { Node } from '../node/Node';
-import { NodeUtils } from '../node/NodeUtils';
+import { Node } from '../../node/Node';
+import { NodeUtils } from '../../node/NodeUtils';
 
 /**
  * replaces:
@@ -19,7 +19,7 @@ import { NodeUtils } from '../node/NodeUtils';
  *     function foo (_0x12d45f) { return _0x12d45f; };
  *
  */
-export class FunctionObfuscator extends AbstractNodeObfuscator {
+export class FunctionObfuscator extends AbstractNodeTransformer {
     /**
      * @type {IdentifierReplacer}
      */

+ 7 - 7
src/node-obfuscators/LabeledStatementObfuscator.ts → src/node-transformers/node-obfuscators/LabeledStatementObfuscator.ts

@@ -1,15 +1,15 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../interfaces/IOptions';
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/IOptions';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { IdentifierReplacer } from './replacers/IdentifierReplacer';
-import { Node } from '../node/Node';
-import { NodeUtils } from '../node/NodeUtils';
+import { Node } from '../../node/Node';
+import { NodeUtils } from '../../node/NodeUtils';
 
 /**
  * replaces:
@@ -27,7 +27,7 @@ import { NodeUtils } from '../node/NodeUtils';
  *     }
  *
  */
-export class LabeledStatementObfuscator extends AbstractNodeObfuscator {
+export class LabeledStatementObfuscator extends AbstractNodeTransformer {
     /**
      * @type {IdentifierReplacer}
      */

+ 3 - 3
src/node-obfuscators/LiteralObfuscator.ts → src/node-transformers/node-obfuscators/LiteralObfuscator.ts

@@ -1,13 +1,13 @@
 import * as escodegen from 'escodegen';
 import * as ESTree from 'estree';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { BooleanLiteralReplacer } from './replacers/BooleanLiteralReplacer';
-import { Node } from '../node/Node';
+import { Node } from '../../node/Node';
 import { NumberLiteralReplacer } from './replacers/NumberLiteralReplacer';
 import { StringLiteralReplacer } from './replacers/StringLiteralReplacer';
 
-export class LiteralObfuscator extends AbstractNodeObfuscator {
+export class LiteralObfuscator extends AbstractNodeTransformer {
     /**
      * @param literalNode
      * @param parentNode

+ 4 - 4
src/node-obfuscators/MemberExpressionObfuscator.ts → src/node-transformers/node-obfuscators/MemberExpressionObfuscator.ts

@@ -2,13 +2,13 @@ import * as escodegen from 'escodegen';
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { Node } from '../node/Node';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { Node } from '../../node/Node';
 import { StringLiteralReplacer } from './replacers/StringLiteralReplacer';
 
-export class MemberExpressionObfuscator extends AbstractNodeObfuscator {
+export class MemberExpressionObfuscator extends AbstractNodeTransformer {
     /**
      * @param memberExpressionNode
      */

+ 4 - 4
src/node-obfuscators/MethodDefinitionObfuscator.ts → src/node-transformers/node-obfuscators/MethodDefinitionObfuscator.ts

@@ -1,9 +1,9 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { Node } from '../node/Node';
-import { Utils } from '../Utils';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { Node } from '../../node/Node';
+import { Utils } from '../../Utils';
 import { StringLiteralReplacer } from './replacers/StringLiteralReplacer';
 
 /**
@@ -13,7 +13,7 @@ import { StringLiteralReplacer } from './replacers/StringLiteralReplacer';
  * on:
  *     [_0x9a4e('0x0')] { //... };
  */
-export class MethodDefinitionObfuscator extends AbstractNodeObfuscator {
+export class MethodDefinitionObfuscator extends AbstractNodeTransformer {
     /**
      * @type {string[]}
      */

+ 5 - 5
src/node-obfuscators/ObjectExpressionObfuscator.ts → src/node-transformers/node-obfuscators/ObjectExpressionObfuscator.ts

@@ -2,11 +2,11 @@ import * as escodegen from 'escodegen';
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
-import { Node } from '../node/Node';
-import { Utils } from '../Utils';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
+import { Node } from '../../node/Node';
+import { Utils } from '../../Utils';
 
 /**
  * replaces:
@@ -18,7 +18,7 @@ import { Utils } from '../Utils';
  * on:
  *     var object = { '\u0050\u0053\u0045\u0055\u0044\u004f': 1 };
  */
-export class ObjectExpressionObfuscator extends AbstractNodeObfuscator {
+export class ObjectExpressionObfuscator extends AbstractNodeTransformer {
     /**
      * @param objectExpressionNode
      */

+ 8 - 8
src/node-obfuscators/VariableDeclarationObfuscator.ts → src/node-transformers/node-obfuscators/VariableDeclarationObfuscator.ts

@@ -1,17 +1,17 @@
 import * as estraverse from 'estraverse';
 import * as ESTree from 'estree';
 
-import { TNodeWithBlockStatement } from '../types/TNodeWithBlockStatement';
+import { TNodeWithBlockStatement } from '../../types/TNodeWithBlockStatement';
 
-import { ICustomNode } from '../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../interfaces/IOptions';
+import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../interfaces/IOptions';
 
-import { NodeType } from '../enums/NodeType';
+import { NodeType } from '../../enums/NodeType';
 
-import { AbstractNodeObfuscator } from './AbstractNodeObfuscator';
+import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { IdentifierReplacer } from './replacers/IdentifierReplacer';
-import { Node } from '../node/Node';
-import { NodeUtils } from '../node/NodeUtils';
+import { Node } from '../../node/Node';
+import { NodeUtils } from '../../node/NodeUtils';
 
 /**
  * replaces:
@@ -23,7 +23,7 @@ import { NodeUtils } from '../node/NodeUtils';
  *     _0x12d45f++;
  *
  */
-export class VariableDeclarationObfuscator extends AbstractNodeObfuscator {
+export class VariableDeclarationObfuscator extends AbstractNodeTransformer {
     /**
      * @type {IdentifierReplacer}
      */

+ 3 - 3
src/node-obfuscators/replacers/AbstractReplacer.ts → src/node-transformers/node-obfuscators/replacers/AbstractReplacer.ts

@@ -1,6 +1,6 @@
-import { ICustomNode } from '../../interfaces/custom-nodes/ICustomNode';
-import { IOptions } from '../../interfaces/IOptions';
-import { IReplacer } from '../../interfaces/IReplacer';
+import { ICustomNode } from '../../../interfaces/custom-nodes/ICustomNode';
+import { IOptions } from '../../../interfaces/IOptions';
+import { IReplacer } from '../../../interfaces/IReplacer';
 
 export abstract class AbstractReplacer implements IReplacer {
     /**

+ 1 - 1
src/node-obfuscators/replacers/BooleanLiteralReplacer.ts → src/node-transformers/node-obfuscators/replacers/BooleanLiteralReplacer.ts

@@ -1,4 +1,4 @@
-import { JSFuck } from '../../enums/JSFuck';
+import { JSFuck } from '../../../enums/JSFuck';
 
 import { AbstractReplacer } from './AbstractReplacer';
 

+ 1 - 1
src/node-obfuscators/replacers/IdentifierReplacer.ts → src/node-transformers/node-obfuscators/replacers/IdentifierReplacer.ts

@@ -1,5 +1,5 @@
 import { AbstractReplacer } from './AbstractReplacer';
-import { Utils } from '../../Utils';
+import { Utils } from '../../../Utils';
 
 export class IdentifierReplacer extends AbstractReplacer {
     /**

+ 1 - 1
src/node-obfuscators/replacers/NumberLiteralReplacer.ts → src/node-transformers/node-obfuscators/replacers/NumberLiteralReplacer.ts

@@ -1,5 +1,5 @@
 import { AbstractReplacer } from './AbstractReplacer';
-import { Utils } from '../../Utils';
+import { Utils } from '../../../Utils';
 
 export class NumberLiteralReplacer extends AbstractReplacer {
     /**

+ 5 - 5
src/node-obfuscators/replacers/StringLiteralReplacer.ts → src/node-transformers/node-obfuscators/replacers/StringLiteralReplacer.ts

@@ -1,12 +1,12 @@
-import { TStringArrayCallsWrapper } from '../../types/custom-nodes/TStringArrayCallsWrapper';
-import { TStringArrayNode } from '../../types/custom-nodes/TStringArrayNode';
+import { TStringArrayCallsWrapper } from '../../../types/custom-nodes/TStringArrayCallsWrapper';
+import { TStringArrayNode } from '../../../types/custom-nodes/TStringArrayNode';
 
-import { StringArrayEncoding } from '../../enums/StringArrayEncoding';
+import { StringArrayEncoding } from '../../../enums/StringArrayEncoding';
 
 import { AbstractReplacer } from './AbstractReplacer';
 import { NumberLiteralReplacer } from './NumberLiteralReplacer';
-import { StringArray } from '../../StringArray';
-import { Utils } from '../../Utils';
+import { StringArray } from '../../../StringArray';
+import { Utils } from '../../../Utils';
 
 export class StringLiteralReplacer extends AbstractReplacer {
     /**

+ 0 - 0
test/fixtures/node-obfuscators/catch-clause-obfuscator/catch-clause-obfuscator.js → test/fixtures/node-transformers/node-obfuscators/catch-clause-obfuscator/catch-clause-obfuscator.js


+ 0 - 0
test/fixtures/node-obfuscators/labeled-statement-obfuscator/labeled-statement-obfuscator.js → test/fixtures/node-transformers/node-obfuscators/labeled-statement-obfuscator/labeled-statement-obfuscator.js


+ 7 - 5
test/functional-tests/node-obfuscators/CatchClauseObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/CatchClauseObfuscator.spec.ts

@@ -1,17 +1,19 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { readFileAsString } from '../../helpers/readFileAsString';
+import { readFileAsString } from '../../../helpers/readFileAsString';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 
 describe('CatchClauseObfuscator', () => {
     describe('changeControlFlow (catchClauseNode: ESTree.CatchClause): void', () => {
         const obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
-            readFileAsString('./test/fixtures/node-obfuscators/catch-clause-obfuscator/catch-clause-obfuscator.js'),
+            readFileAsString(
+                './test/fixtures/node-transformers/node-obfuscators/catch-clause-obfuscator/catch-clause-obfuscator.js'
+            ),
             Object.assign({}, NO_CUSTOM_NODES_PRESET)
         );
         const obfuscatedCode: string = obfuscationResult.getObfuscatedCode();

+ 3 - 3
test/functional-tests/node-obfuscators/FunctionObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/FunctionObfuscator.spec.ts

@@ -1,8 +1,8 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 

+ 7 - 5
test/functional-tests/node-obfuscators/LabeledStatementObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/LabeledStatementObfuscator.spec.ts

@@ -1,17 +1,19 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { readFileAsString } from '../../helpers/readFileAsString';
+import { readFileAsString } from '../../../helpers/readFileAsString';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 
 describe('LabeledStatementObfuscator', () => {
     describe('changeControlFlow (labeledStatementNode: ESTree.LabeledStatement): void', () => {
         const obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
-            readFileAsString('./test/fixtures/node-obfuscators/labeled-statement-obfuscator/labeled-statement-obfuscator.js'),
+            readFileAsString(
+                './test/fixtures/node-transformers/node-obfuscators/labeled-statement-obfuscator/labeled-statement-obfuscator.js'
+            ),
             Object.assign({}, NO_CUSTOM_NODES_PRESET)
         );
         const obfuscatedCode: string = obfuscationResult.getObfuscatedCode();

+ 3 - 3
test/functional-tests/node-obfuscators/LiteralObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/LiteralObfuscator.spec.ts

@@ -1,8 +1,8 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 

+ 3 - 3
test/functional-tests/node-obfuscators/MemberExpressionObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/MemberExpressionObfuscator.spec.ts

@@ -1,8 +1,8 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 

+ 3 - 3
test/functional-tests/node-obfuscators/MethodDefinitionObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/MethodDefinitionObfuscator.spec.ts

@@ -1,8 +1,8 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 

+ 3 - 3
test/functional-tests/node-obfuscators/ObjectExpressionObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/ObjectExpressionObfuscator.spec.ts

@@ -1,8 +1,8 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 

+ 3 - 3
test/functional-tests/node-obfuscators/VariableDeclarationObfuscator.spec.ts → test/functional-tests/node-transformers/node-obfuscators/VariableDeclarationObfuscator.spec.ts

@@ -1,8 +1,8 @@
-import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
+import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
 
-import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
+import { NO_CUSTOM_NODES_PRESET } from '../../../../src/preset-options/NoCustomNodesPreset';
 
-import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
+import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscator';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 

+ 10 - 10
test/index.spec.ts

@@ -14,8 +14,8 @@ import './unit-tests/OptionsNormalizer.spec';
 import './unit-tests/SourceMapCorrector.spec';
 import './unit-tests/Utils.spec';
 import './unit-tests/cli/CLIUtils.spec';
-import './unit-tests/node-obfuscators/FunctionDeclarationObfuscator.spec';
-import './unit-tests/node-obfuscators/FunctionObfuscator.spec';
+import './unit-tests/node-transformers/node-obfuscators/FunctionDeclarationObfuscator.spec';
+import './unit-tests/node-transformers/node-obfuscators/FunctionObfuscator.spec';
 import './unit-tests/stack-trace-analyzer/StackTraceAnalyzer.spec';
 
 /**
@@ -29,14 +29,14 @@ import './functional-tests/custom-nodes/domain-lock-nodes/DomainLockNode.spec';
 import './functional-tests/custom-nodes/string-array-nodes/StringArrayCallsWrapper.spec';
 import './functional-tests/custom-nodes/string-array-nodes/StringArrayRotateFunctionNode.spec';
 import './functional-tests/custom-nodes/string-array-nodes/StringArrayNode.spec';
-import './functional-tests/node-obfuscators/CatchClauseObfuscator.spec';
-import './functional-tests/node-obfuscators/FunctionObfuscator.spec';
-import './functional-tests/node-obfuscators/LabeledStatementObfuscator.spec';
-import './functional-tests/node-obfuscators/LiteralObfuscator.spec';
-import './functional-tests/node-obfuscators/MemberExpressionObfuscator.spec';
-import './functional-tests/node-obfuscators/MethodDefinitionObfuscator.spec';
-import './functional-tests/node-obfuscators/ObjectExpressionObfuscator.spec';
-import './functional-tests/node-obfuscators/VariableDeclarationObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/CatchClauseObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/FunctionObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/LabeledStatementObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/LiteralObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/MemberExpressionObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/MethodDefinitionObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/ObjectExpressionObfuscator.spec';
+import './functional-tests/node-transformers/node-obfuscators/VariableDeclarationObfuscator.spec';
 import './functional-tests/stack-trace-analyzer/StackTraceAnalyzer.spec';
 import './functional-tests/templates/custom-nodes/domain-lock-nodes/DomainLockNodeTemplate.spec';
 import './functional-tests/templates/custom-nodes/string-array-nodes/StringArrayCallsWrapperNodeTemplate.spec';

+ 5 - 5
test/unit-tests/node-obfuscators/FunctionDeclarationObfuscator.spec.ts → test/unit-tests/node-transformers/node-obfuscators/FunctionDeclarationObfuscator.spec.ts

@@ -1,12 +1,12 @@
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../../../src/interfaces/custom-nodes/ICustomNode';
+import { ICustomNode } from '../../../../src/interfaces/custom-nodes/ICustomNode';
 
-import { DEFAULT_PRESET } from '../../../src/preset-options/DefaultPreset';
+import { DEFAULT_PRESET } from '../../../../src/preset-options/DefaultPreset';
 
-import { FunctionDeclarationObfuscator } from '../../../src/node-obfuscators/FunctionDeclarationObfuscator';
-import { NodeMocks } from '../../mocks/NodeMocks';
-import { Options } from '../../../src/options/Options';
+import { FunctionDeclarationObfuscator } from '../../../../src/node-transformers/node-obfuscators/FunctionDeclarationObfuscator';
+import { NodeMocks } from '../../../mocks/NodeMocks';
+import { Options } from '../../../../src/options/Options';
 
 const assert: Chai.AssertStatic = require('chai').assert;
 

+ 5 - 5
test/unit-tests/node-obfuscators/FunctionObfuscator.spec.ts → test/unit-tests/node-transformers/node-obfuscators/FunctionObfuscator.spec.ts

@@ -1,12 +1,12 @@
 import * as ESTree from 'estree';
 
-import { ICustomNode } from '../../../src/interfaces/custom-nodes/ICustomNode';
+import { ICustomNode } from '../../../../src/interfaces/custom-nodes/ICustomNode';
 
-import { DEFAULT_PRESET } from '../../../src/preset-options/DefaultPreset';
+import { DEFAULT_PRESET } from '../../../../src/preset-options/DefaultPreset';
 
-import { FunctionObfuscator } from '../../../src/node-obfuscators/FunctionObfuscator';
-import { NodeMocks } from '../../mocks/NodeMocks';
-import { Options } from '../../../src/options/Options';
+import { FunctionObfuscator } from '../../../../src/node-transformers/node-obfuscators/FunctionObfuscator';
+import { NodeMocks } from '../../../mocks/NodeMocks';
+import { Options } from '../../../../src/options/Options';
 
 
 const assert: Chai.AssertStatic = require('chai').assert;

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