sanex3339 пре 7 година
родитељ
комит
592ba47f33

+ 1 - 0
CHANGELOG.md

@@ -7,6 +7,7 @@ v0.15.0
 * **New CLI option:** `exclude` allows to exclude specific files or directories from obfuscation.
 * Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/217
 * Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/210
+* Internal: refactoring of many things.
 
 v0.14.3
 ---

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/index.js


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "javascript-obfuscator",
-  "version": "0.15.0-dev.3",
+  "version": "0.15.0-dev.4",
   "description": "JavaScript obfuscator",
   "keywords": [
     "obfuscator",

+ 8 - 1
src/declarations/ESTree.d.ts

@@ -6,13 +6,16 @@ import * as ESTree from 'estree';
 declare module 'estree' {
     export interface BaseNodeMetadata {
         ignoredNode?: boolean;
-        obfuscatedNode?: boolean;
     }
 
     export interface IdentifierNodeMetadata extends BaseNodeMetadata {
         renamedIdentifier?: boolean;
     }
 
+    export interface SimpleLiteralNodeMetadata extends BaseNodeMetadata {
+        replacedLiteral?: boolean;
+    }
+
     interface BaseNode {
         metadata?: BaseNodeMetadata;
         parentNode?: ESTree.Node;
@@ -22,6 +25,10 @@ declare module 'estree' {
         metadata?: IdentifierNodeMetadata;
     }
 
+    interface SimpleLiteral extends BaseNode {
+        metadata?: SimpleLiteralNodeMetadata;
+    }
+
     interface ExpressionStatement extends BaseNode {
         directive?: 'use strict';
     }

+ 1 - 1
src/node-transformers/obfuscating-transformers/LiteralTransformer.ts

@@ -48,7 +48,7 @@ export class LiteralTransformer extends AbstractNodeTransformer {
             case TransformationStage.Obfuscating:
                 return {
                     enter: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
-                        if (parentNode && NodeGuards.isLiteralNode(node) && !NodeMetadata.isObfuscatedNode(node)) {
+                        if (parentNode && NodeGuards.isLiteralNode(node) && !NodeMetadata.isReplacedLiteral(node)) {
                             return this.transformNode(node, parentNode);
                         }
                     }

+ 2 - 2
src/node-transformers/obfuscating-transformers/obfuscating-replacers/literal-obfuscating-replacers/StringLiteralObfuscatingReplacer.ts

@@ -109,7 +109,7 @@ export class StringLiteralObfuscatingReplacer extends AbstractObfuscatingReplace
     private static getHexadecimalLiteralNode (hexadecimalIndex: string): ESTree.Literal {
         const hexadecimalLiteralNode: ESTree.Literal = NodeFactory.literalNode(hexadecimalIndex);
 
-        NodeMetadata.set(hexadecimalLiteralNode, { obfuscatedNode: true });
+        NodeMetadata.set(hexadecimalLiteralNode, { replacedLiteral: true });
 
         return hexadecimalLiteralNode;
     }
@@ -121,7 +121,7 @@ export class StringLiteralObfuscatingReplacer extends AbstractObfuscatingReplace
     private static getRc4KeyLiteralNode (literalValue: string): ESTree.Literal {
         const rc4KeyLiteralNode: ESTree.Literal = NodeFactory.literalNode(literalValue);
 
-        NodeMetadata.set(rc4KeyLiteralNode, { obfuscatedNode: true });
+        NodeMetadata.set(rc4KeyLiteralNode, { replacedLiteral: true });
 
         return rc4KeyLiteralNode;
     }

+ 1 - 2
src/node-transformers/preparing-transformers/MetadataTransformer.ts

@@ -53,8 +53,7 @@ export class MetadataTransformer extends AbstractNodeTransformer {
      */
     public transformNode (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node {
         NodeMetadata.set(node, {
-            ignoredNode: false,
-            obfuscatedNode: false
+            ignoredNode: false
         });
 
         return node;

+ 27 - 108
src/node/NodeFactory.ts

@@ -17,10 +17,7 @@ export class NodeFactory {
             type: NodeType.Program,
             body,
             sourceType: 'script',
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -34,10 +31,7 @@ export class NodeFactory {
         return {
             type: NodeType.ArrayExpression,
             elements,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -57,10 +51,7 @@ export class NodeFactory {
             operator,
             left,
             right,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -80,10 +71,7 @@ export class NodeFactory {
             operator,
             left,
             right,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -95,10 +83,7 @@ export class NodeFactory {
         return {
             type: NodeType.BlockStatement,
             body,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -109,10 +94,7 @@ export class NodeFactory {
     public static breakStatement (label?: ESTree.Identifier): ESTree.BreakStatement {
         const breakStatementNode: ESTree.BreakStatement = {
             type: NodeType.BreakStatement,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
 
         if (label) {
@@ -135,10 +117,7 @@ export class NodeFactory {
             type: NodeType.CallExpression,
             callee,
             arguments: args,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -149,10 +128,7 @@ export class NodeFactory {
     public static continueStatement (label?: ESTree.Identifier): ESTree.ContinueStatement {
         const continueStatementNode: ESTree.ContinueStatement = {
             type: NodeType.ContinueStatement,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
 
         if (label) {
@@ -170,10 +146,7 @@ export class NodeFactory {
         return {
             type: NodeType.ExpressionStatement,
             expression,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -194,10 +167,7 @@ export class NodeFactory {
             params,
             body,
             generator: false,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -215,10 +185,7 @@ export class NodeFactory {
             params,
             body,
             generator: false,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -238,10 +205,7 @@ export class NodeFactory {
             test,
             consequent,
             ...alternate && { alternate },
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -253,10 +217,7 @@ export class NodeFactory {
         return {
             type: NodeType.Identifier,
             name,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -276,10 +237,7 @@ export class NodeFactory {
                 content: raw,
                 precedence: escodegen.Precedence.Primary
             },
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -299,10 +257,7 @@ export class NodeFactory {
             operator,
             left,
             right,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -322,10 +277,7 @@ export class NodeFactory {
             computed,
             object,
             property,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -349,10 +301,7 @@ export class NodeFactory {
             kind,
             computed,
             static: false,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -364,10 +313,7 @@ export class NodeFactory {
         return {
             type: NodeType.ObjectExpression,
             properties,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -390,10 +336,7 @@ export class NodeFactory {
             method: false,
             shorthand: false,
             computed,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -405,10 +348,7 @@ export class NodeFactory {
         return {
             type: NodeType.ReturnStatement,
             argument,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -425,10 +365,7 @@ export class NodeFactory {
             type: NodeType.SwitchStatement,
             discriminant,
             cases,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -442,10 +379,7 @@ export class NodeFactory {
             type: NodeType.SwitchCase,
             test,
             consequent,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -465,10 +399,7 @@ export class NodeFactory {
             operator,
             argument,
             prefix,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -483,10 +414,7 @@ export class NodeFactory {
             operator,
             argument: argumentExpr,
             prefix: false,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -503,10 +431,7 @@ export class NodeFactory {
             type: NodeType.VariableDeclaration,
             declarations,
             kind,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -520,10 +445,7 @@ export class NodeFactory {
             type: NodeType.VariableDeclarator,
             id,
             init,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 
@@ -537,10 +459,7 @@ export class NodeFactory {
             type: NodeType.WhileStatement,
             test,
             body,
-            metadata: {
-                ignoredNode: false,
-                obfuscatedNode: false
-            }
+            metadata: { ignoredNode: false }
         };
     }
 }

+ 6 - 6
src/node/NodeMetadata.ts

@@ -32,18 +32,18 @@ export class NodeMetadata {
     }
 
     /**
-     * @param {Node} node
+     * @param {Node} identifierNode
      * @returns {boolean}
      */
-    public static isObfuscatedNode (node: ESTree.Node): boolean {
-        return NodeMetadata.get(node, 'obfuscatedNode') === true;
+    public static isRenamedIdentifier (identifierNode: ESTree.Identifier): boolean {
+        return NodeMetadata.get<boolean, ESTree.IdentifierNodeMetadata>(identifierNode, 'renamedIdentifier') === true;
     }
 
     /**
-     * @param {Node} identifierNode
+     * @param {Node} literalNode
      * @returns {boolean}
      */
-    public static isRenamedIdentifier (identifierNode: ESTree.Identifier): boolean {
-        return NodeMetadata.get<boolean, ESTree.IdentifierNodeMetadata>(identifierNode, 'renamedIdentifier') === true;
+    public static isReplacedLiteral (literalNode: ESTree.Literal): boolean {
+        return NodeMetadata.get<boolean, ESTree.SimpleLiteralNodeMetadata>(literalNode, 'replacedLiteral') === true;
     }
 }

+ 1 - 4
src/node/NodeUtils.ts

@@ -51,10 +51,7 @@ export class NodeUtils {
 
         estraverse.replace(structure, {
             enter: (node: ESTree.Node): ESTree.Node => {
-                NodeMetadata.set(node, {
-                    ignoredNode: false,
-                    obfuscatedNode: false
-                });
+                NodeMetadata.set(node, { ignoredNode: false });
 
                 return node;
             }

+ 6 - 8
test/unit-tests/node/node-utils/NodeUtils.spec.ts

@@ -122,7 +122,7 @@ describe('NodeUtils', () => {
         });
     });
 
-    describe('convertCodeToStructure (code: string): ESTree.Node[]', () => {
+    describe('convertCodeToStructure (code: string): ESTree.Statement[]', () => {
         let structure: TStatement[],
             expectedStructure: TStatement[];
 
@@ -133,13 +133,11 @@ describe('NodeUtils', () => {
 
             const identifierNode: ESTree.Identifier = NodeFactory.identifierNode('abc');
             const literalNode: ESTree.Literal = NodeFactory.literalNode('cde');
-            const variableDeclaratorNode: ESTree.VariableDeclarator = NodeFactory.variableDeclaratorNode(identifierNode, literalNode);
-            const variableDeclarationNode: ESTree.VariableDeclaration = NodeFactory.variableDeclarationNode([
-                variableDeclaratorNode
-            ]);
-            const programNode: ESTree.Program = NodeFactory.programNode([
-                variableDeclarationNode
-            ]);
+            const variableDeclaratorNode: ESTree.VariableDeclarator = NodeFactory
+                .variableDeclaratorNode(identifierNode, literalNode);
+            const variableDeclarationNode: ESTree.VariableDeclaration = NodeFactory
+                .variableDeclarationNode([variableDeclaratorNode]);
+            const programNode: ESTree.Program = NodeFactory.programNode([variableDeclarationNode]);
 
             programNode.parentNode = programNode;
             variableDeclarationNode.parentNode = programNode;

Неке датотеке нису приказане због велике количине промена