This commit is contained in:
sanex3339
2016-06-06 13:24:33 +03:00
parent 3afacb1903
commit efae69d46f
6 changed files with 14 additions and 4 deletions
+3
View File
@@ -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))
@@ -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
View File
@@ -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
View File
@@ -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}
@@ -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
View File
@@ -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);