From 59404a6ba5644585cfb3f7a78d451bbaa7381919 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Sun, 5 Jun 2016 16:47:59 +0300 Subject: [PATCH] selfDefending test implementation --- .../self-defending-nodes/SelfDefendingUnicodeNode.js | 2 +- .../custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.js | 3 +++ dist/tests/dev-test.js | 3 ++- src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts | 2 ++ tests/dev-test.ts | 3 ++- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dist/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.js b/dist/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.js index c96be796..f27f0994 100644 --- a/dist/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.js +++ b/dist/src/custom-nodes/self-defending-nodes/SelfDefendingUnicodeNode.js @@ -23,7 +23,7 @@ class SelfDefendingUnicodeNode extends Node_1.Node { getNodeStructure() { let node = esprima.parse(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(` (function () { - var func = function(){return ${Utils_1.Utils.stringToUnicode('dev')};}, + var func = function(){return ${Utils_1.Utils.stringToUnicode('dev')};}, func2 = function () { return 'window'; }; diff --git a/dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.js b/dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.js index 6df09069..40b77eb4 100644 --- a/dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.js +++ b/dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.js @@ -35,6 +35,9 @@ class UnicodeArrayDecodeNode extends Node_1.Node { Function(${Utils_1.Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})()[${Utils_1.Utils.stringToUnicode('test')}](${environmentName}[${Utils_1.Utils.stringToUnicode('toString')}]()) !== ${JSFuck_1.JSFuck.True} && !${this.unicodeArrayName}++ ? []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.True}){}')() : ${JSFuck_1.JSFuck.Window}.eval(${forLoopFunctionName}()) ? []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')() : []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')(); `; } + else { + code = `${forLoopFunctionName}();`; + } node = esprima.parse(` (function () { ${JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(` diff --git a/dist/tests/dev-test.js b/dist/tests/dev-test.js index 0b160fbb..aeba5cda 100644 --- a/dist/tests/dev-test.js +++ b/dist/tests/dev-test.js @@ -48,7 +48,8 @@ let obfuscatedCode = JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(` })(); `, { disableConsoleOutput: false, - encodeUnicodeLiterals: true + encodeUnicodeLiterals: true, + selfDefending: false }); console.log(obfuscatedCode); console.log(eval(obfuscatedCode)); diff --git a/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts b/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts index 227cf666..8e927310 100644 --- a/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts +++ b/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts @@ -87,6 +87,8 @@ export class UnicodeArrayDecodeNode extends Node { Function(${Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})()[${Utils.stringToUnicode('test')}](${environmentName}[${Utils.stringToUnicode('toString')}]()) !== ${JSFuck.True} && !${this.unicodeArrayName}++ ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.True}){}')() : ${JSFuck.Window}.eval(${forLoopFunctionName}()) ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')() : []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')(); `; + } else { + code = `${forLoopFunctionName}();`; } node = esprima.parse(` diff --git a/tests/dev-test.ts b/tests/dev-test.ts index d40bbe00..cf73a1dc 100644 --- a/tests/dev-test.ts +++ b/tests/dev-test.ts @@ -50,7 +50,8 @@ let obfuscatedCode: string = JavaScriptObfuscator.obfuscate( `, { disableConsoleOutput: false, - encodeUnicodeLiterals: true + encodeUnicodeLiterals: true, + selfDefending: false } );