added option for disabling console output

This commit is contained in:
sanex3339
2016-05-21 23:30:35 +03:00
parent 64931c33a8
commit 898da19c2a
6 changed files with 40 additions and 43 deletions
+6 -6
View File
@@ -71,18 +71,18 @@ class Obfuscator {
}
;
insertNewNodes(astTree) {
if (this.options['rotateUnicodeArray']) {
this.setNodesGroup(new UnicodeArrayNodesGroup_1.UnicodeArrayNodesGroup(astTree));
}
else {
this.setNode('unicodeArrayNode', new UnicodeArrayNode_1.UnicodeArrayNode(astTree, Utils_1.Utils.getRandomVariableName(UnicodeArrayNode_1.UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH)));
}
if (this.options['disableConsoleOutput']) {
this.setNode('consoleOutputDisableExpressionNode', new ConsoleOutputDisableExpressionNode_1.ConsoleOutputDisableExpressionNode(astTree));
}
if (this.options['debugProtection']) {
this.setNodesGroup(new DebugProtectionNodesGroup_1.DebugProtectionNodesGroup(astTree, this.options));
}
if (this.options['rotateUnicodeArray']) {
this.setNodesGroup(new UnicodeArrayNodesGroup_1.UnicodeArrayNodesGroup(astTree));
}
else {
this.setNode('unicodeArrayNode', new UnicodeArrayNode_1.UnicodeArrayNode(astTree, Utils_1.Utils.getRandomVariableName(UnicodeArrayNode_1.UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH)));
}
}
nodeControllerFirstPass(node, parent) {
Object.defineProperty(node, 'parentNode', {
+12 -9
View File
@@ -119,15 +119,6 @@ export class Obfuscator {
};
private insertNewNodes (astTree: ITreeNode): void {
if (this.options['rotateUnicodeArray']) {
this.setNodesGroup(new UnicodeArrayNodesGroup(astTree));
} else {
this.setNode(
'unicodeArrayNode',
new UnicodeArrayNode(astTree, Utils.getRandomVariableName(UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH))
);
}
if (this.options['disableConsoleOutput']) {
this.setNode(
'consoleOutputDisableExpressionNode',
@@ -138,6 +129,18 @@ export class Obfuscator {
if (this.options['debugProtection']) {
this.setNodesGroup(new DebugProtectionNodesGroup(astTree, this.options));
}
/**
* Important to set this nodes latest to prevent runtime errors cause by `rotateUnicodeArray` option
*/
if (this.options['rotateUnicodeArray']) {
this.setNodesGroup(new UnicodeArrayNodesGroup(astTree));
} else {
this.setNode(
'unicodeArrayNode',
new UnicodeArrayNode(astTree, Utils.getRandomVariableName(UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH))
);
}
}
/**
@@ -2,6 +2,7 @@
const estraverse = require('estraverse');
const NodeType_1 = require("../enums/NodeType");
const Node_1 = require('./Node');
const NodeUtils_1 = require("../NodeUtils");
class ConsoleOutputDisableExpressionNode extends Node_1.Node {
constructor(astTree) {
super();
@@ -11,13 +12,11 @@ class ConsoleOutputDisableExpressionNode extends Node_1.Node {
appendNode() {
estraverse.replace(this.astTree, {
leave: (node, parent) => {
switch (node.type) {
case NodeType_1.NodeType.Program:
node.body.unshift(this.getNode());
break;
default:
break;
if (NodeUtils_1.NodeUtils.isProgramNode(node)) {
node.body.unshift(this.getNode());
return estraverse.VisitorOption.Break;
}
return estraverse.VisitorOption.Skip;
}
});
}
@@ -2,12 +2,12 @@
import * as estraverse from 'estraverse';
import { IProgramNode } from '../interfaces/nodes/IProgramNode';
import { ITreeNode } from '../interfaces/nodes/ITreeNode';
import { NodeType } from "../enums/NodeType";
import { Node } from './Node';
import { NodeUtils } from "../NodeUtils";
export class ConsoleOutputDisableExpressionNode extends Node {
/**
@@ -33,15 +33,13 @@ export class ConsoleOutputDisableExpressionNode extends Node {
public appendNode (): void {
estraverse.replace(this.astTree, {
leave: (node: ITreeNode, parent: ITreeNode): any => {
switch (node.type) {
case NodeType.Program:
(<IProgramNode>node).body.unshift(this.getNode());
if (NodeUtils.isProgramNode(node)) {
node.body.unshift(this.getNode());
break;
default:
break;
return estraverse.VisitorOption.Break;
}
return estraverse.VisitorOption.Skip;
}
});
}
+5 -6
View File
@@ -4,6 +4,7 @@ const estraverse = require('estraverse');
const AppendState_1 = require('../enums/AppendState');
const NodeType_1 = require("../enums/NodeType");
const Node_1 = require('./Node');
const NodeUtils_1 = require("../NodeUtils");
const Utils_1 = require('../Utils');
class UnicodeArrayNode extends Node_1.Node {
constructor(astTree, unicodeArrayName, unicodeArrayRotateValue = 0) {
@@ -18,13 +19,11 @@ class UnicodeArrayNode extends Node_1.Node {
appendNode() {
estraverse.replace(this.astTree, {
leave: (node, parent) => {
switch (node.type) {
case NodeType_1.NodeType.Program:
node.body.unshift(this.getNode());
break;
default:
break;
if (NodeUtils_1.NodeUtils.isProgramNode(node)) {
node.body.unshift(this.getNode());
return estraverse.VisitorOption.Break;
}
return estraverse.VisitorOption.Skip;
}
});
}
+6 -8
View File
@@ -1,13 +1,13 @@
import * as escodegen from 'escodegen';
import * as estraverse from 'estraverse';
import { IProgramNode } from '../interfaces/nodes/IProgramNode';
import { ITreeNode } from '../interfaces/nodes/ITreeNode';
import { AppendState } from '../enums/AppendState';
import { NodeType } from "../enums/NodeType";
import { Node } from './Node';
import { NodeUtils } from "../NodeUtils";
import { Utils } from '../Utils';
export class UnicodeArrayNode extends Node {
@@ -63,15 +63,13 @@ export class UnicodeArrayNode extends Node {
public appendNode (): void {
estraverse.replace(this.astTree, {
leave: (node: ITreeNode, parent: ITreeNode): any => {
switch (node.type) {
case NodeType.Program:
(<IProgramNode>node).body.unshift(this.getNode());
if (NodeUtils.isProgramNode(node)) {
node.body.unshift(this.getNode());
break;
default:
break;
return estraverse.VisitorOption.Break;
}
return estraverse.VisitorOption.Skip;
}
});
}