mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
added option for disabling console output
This commit is contained in:
+6
-6
@@ -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
@@ -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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user