sanex3339 преди 9 години
родител
ревизия
efae69d46f

+ 3 - 0
dist/src/Utils.js

@@ -21,6 +21,9 @@ class Utils {
         }
         return newArray;
     }
+    static btoa(string) {
+        return new Buffer(encodeURI(string)).toString('base64');
+    }
     static decToHex(dec) {
         const decToHexSliceValue = -6, exponent = 6, radix = 16;
         return (dec + Math.pow(radix, exponent))

+ 1 - 1
dist/src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.js

@@ -32,7 +32,7 @@ class UnicodeArrayDecodeNode extends Node_1.Node {
             code = `
                 var ${environmentName} = function(){return ${Utils_1.Utils.stringToUnicode('dev')};};
                    
-                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}){}')() : Function(${Utils_1.Utils.stringToUnicode('a')}, ${Utils_1.Utils.stringToUnicode('a()')})(${forLoopFunctionName}) ? []['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+ *['|"].+['|"];? *}/`)})()[${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}){}')() : Function(${Utils_1.Utils.stringToUnicode('a')}, atob(${Utils_1.Utils.stringToUnicode(Utils_1.Utils.btoa('a()'))}))(${forLoopFunctionName}) ? []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')() : []['filter']['constructor'](${Utils_1.Utils.stringToJSFuck('while')} + '(${JSFuck_1.JSFuck.False}){}')();
             `;
         }
         else {

+ 1 - 1
dist/src/node-obfuscators/NodeObfuscator.js

@@ -37,7 +37,7 @@ class NodeObfuscator {
     replaceLiteralValueByUnicodeValue(nodeValue) {
         let value = nodeValue, replaceByUnicodeArrayFlag = Math.random() <= this.options['unicodeArrayThreshold'];
         if (this.options['encodeUnicodeLiterals'] && replaceByUnicodeArrayFlag) {
-            value = new Buffer(encodeURI(value)).toString('base64');
+            value = Utils_1.Utils.btoa(value);
         }
         value = Utils_1.Utils.stringToUnicode(value);
         if (!this.options['unicodeArray'] || !replaceByUnicodeArrayFlag) {

+ 7 - 0
src/Utils.ts

@@ -42,6 +42,13 @@ export class Utils {
         return newArray;
     }
 
+    /**
+     * @param string
+     */
+    public static btoa (string: string): string {
+        return new Buffer(encodeURI(string)).toString('base64');
+    }
+
     /**
      * @param dec
      * @returns {string}

+ 1 - 1
src/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode.ts

@@ -85,7 +85,7 @@ export class UnicodeArrayDecodeNode extends Node {
             code = `
                 var ${environmentName} = function(){return ${Utils.stringToUnicode('dev')};};
                    
-                Function(${Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})()[${Utils.stringToUnicode('test')}](${environmentName}[${Utils.stringToUnicode('toString')}]()) !== ${JSFuck.True} && !${this.unicodeArrayName}++ ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.True}){}')() : Function(${Utils.stringToUnicode('a')}, ${Utils.stringToUnicode('a()')})(${forLoopFunctionName}) ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')() : []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')();
+                Function(${Utils.stringToUnicode(`return/\\w+ *\\(\\) *{\\w+ *['|"].+['|"];? *}/`)})()[${Utils.stringToUnicode('test')}](${environmentName}[${Utils.stringToUnicode('toString')}]()) !== ${JSFuck.True} && !${this.unicodeArrayName}++ ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.True}){}')() : Function(${Utils.stringToUnicode('a')}, atob(${Utils.stringToUnicode(Utils.btoa('a()'))}))(${forLoopFunctionName}) ? []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')() : []['filter']['constructor'](${Utils.stringToJSFuck('while')} + '(${JSFuck.False}){}')();
             `;
         } else {
             code = `${forLoopFunctionName}();`;

+ 1 - 1
src/node-obfuscators/NodeObfuscator.ts

@@ -101,7 +101,7 @@ export abstract class NodeObfuscator implements INodeObfuscator {
             replaceByUnicodeArrayFlag: boolean = Math.random() <= this.options['unicodeArrayThreshold'];
 
         if (this.options['encodeUnicodeLiterals'] && replaceByUnicodeArrayFlag) {
-            value = new Buffer(encodeURI(value)).toString('base64');
+            value = Utils.btoa(value);
         }
 
         value = Utils.stringToUnicode(value);