Explorar o código

selfDefending test implementation

sanex3339 %!s(int64=9) %!d(string=hai) anos
pai
achega
2d42d6b790

+ 4 - 4
dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.js

@@ -30,14 +30,14 @@ class UnicodeArrayRotateFunctionNode extends Node_1.Node {
         if (this.options['selfDefending']) {
             code = JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(`
                 (function () {
-                     var func = function(){return ${Utils_1.Utils.stringToUnicode('dev')};};
+                    var func = function(){return ${Utils_1.Utils.stringToUnicode('dev')};};
                                         
-                    !Function(${Utils_1.Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})().test(func.toString()) ? []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.True}){}')() : ${JSFuck_1.JSFuck.Window}.eval(${whileFunctionName}(${timesName})) ? []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')() : []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')();
+                    !Function(${Utils_1.Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})().test(func.toString()) ? []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.True}){}')() : ${JSFuck_1.JSFuck.Window}.eval(${whileFunctionName}(++${timesName})) ? []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')() : []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')();
                 })();
             `, NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET);
         }
         else {
-            code = `${whileFunctionName}(${timesName})`;
+            code = `${whileFunctionName}(++${timesName})`;
         }
         node = esprima.parse(`
             (function (${arrayName}, ${timesName}) {
@@ -48,7 +48,7 @@ class UnicodeArrayRotateFunctionNode extends Node_1.Node {
                 var ${tempArrayName};
 
                 var ${whileFunctionName} = function (${timesArgumentName}) {
-                    while (${timesArgumentName}--) {
+                    while (--${timesArgumentName}) {
                         ${tempArrayName} = ${arrayName}[${Utils_1.Utils.stringToUnicode('shift')}]();
                         ${arrayName}[${Utils_1.Utils.stringToUnicode('push')}](${tempArrayName});
                     }

+ 1 - 2
dist/tests/dev-test.js

@@ -48,8 +48,7 @@ let obfuscatedCode = JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(`
     })();
     `, {
     disableConsoleOutput: false,
-    encodeUnicodeLiterals: true,
-    selfDefending: false
+    encodeUnicodeLiterals: true
 });
 console.log(obfuscatedCode);
 console.log(eval(obfuscatedCode));

+ 4 - 4
src/custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode.ts

@@ -90,13 +90,13 @@ export class UnicodeArrayRotateFunctionNode extends Node {
         if (this.options['selfDefending']) {
             code = JavaScriptObfuscator.obfuscate(`
                 (function () {
-                     var func = function(){return ${Utils.stringToUnicode('dev')};};
+                    var func = function(){return ${Utils.stringToUnicode('dev')};};
                                         
-                    !Function(${Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})().test(func.toString()) ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.True}){}')() : ${JSFuck.Window}.eval(${whileFunctionName}(${timesName})) ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')() : []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')();
+                    !Function(${Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})().test(func.toString()) ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.True}){}')() : ${JSFuck.Window}.eval(${whileFunctionName}(++${timesName})) ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')() : []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')();
                 })();
             `, NO_CUSTOM_NODES_PRESET);
         } else {
-            code = `${whileFunctionName}(${timesName})`;
+            code = `${whileFunctionName}(++${timesName})`;
         }
 
         node = esprima.parse(`
@@ -108,7 +108,7 @@ export class UnicodeArrayRotateFunctionNode extends Node {
                 var ${tempArrayName};
 
                 var ${whileFunctionName} = function (${timesArgumentName}) {
-                    while (${timesArgumentName}--) {
+                    while (--${timesArgumentName}) {
                         ${tempArrayName} = ${arrayName}[${Utils.stringToUnicode('shift')}]();
                         ${arrayName}[${Utils.stringToUnicode('push')}](${tempArrayName});
                     }

+ 1 - 2
tests/dev-test.ts

@@ -50,8 +50,7 @@ let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
     `,
     {
         disableConsoleOutput: false,
-        encodeUnicodeLiterals: true,
-        selfDefending: false
+        encodeUnicodeLiterals: true
     }
 );