浏览代码

UnicodeArrayDecodeNodeTemplate spec + deps update

sanex3339 8 年之前
父节点
当前提交
c59be538f2

+ 4 - 4
dist/index.js

@@ -2068,7 +2068,7 @@ var AppendState_1 = __webpack_require__(2);
 var NoCustomNodesPreset_1 = __webpack_require__(16);
 var AtobTemplate_1 = __webpack_require__(57);
 var SelfDefendingTemplate_1 = __webpack_require__(65);
-var UnicodeArrayDecodeTemplate_1 = __webpack_require__(66);
+var UnicodeArrayDecodeNodeTemplate_1 = __webpack_require__(66);
 var AbstractCustomNode_1 = __webpack_require__(4);
 var JavaScriptObfuscator_1 = __webpack_require__(9);
 var NodeUtils_1 = __webpack_require__(1);
@@ -2113,7 +2113,7 @@ var UnicodeArrayDecodeNode = function (_AbstractCustomNode_) {
             } else {
                 code = forLoopFunctionName + "();";
             }
-            return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(UnicodeArrayDecodeTemplate_1.UnicodeArrayDecodeTemplate().formatUnicorn({
+            return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(UnicodeArrayDecodeNodeTemplate_1.UnicodeArrayDecodeNodeTemplate().formatUnicorn({
                 atobPolyfill: AtobTemplate_1.AtobTemplate(),
                 code: code,
                 forLoopFunctionName: forLoopFunctionName,
@@ -3587,10 +3587,10 @@ exports.SelfDefendingTemplate = SelfDefendingTemplate;
 "use strict";
 "use strict";
 
-function UnicodeArrayDecodeTemplate() {
+function UnicodeArrayDecodeNodeTemplate() {
     return "\n        (function () {\n           {atobPolyfill}\n          \n            var {forLoopFunctionName} = function () {\n                var array = [];\n                \n                for (var i in {unicodeArrayName}) {\n                    array['push'](decodeURI(atob({unicodeArrayName}[i])));\n                }\n                \n                {unicodeArrayName} = array;\n            };\n            \n            {code}\n        })();\n    ";
 }
-exports.UnicodeArrayDecodeTemplate = UnicodeArrayDecodeTemplate;
+exports.UnicodeArrayDecodeNodeTemplate = UnicodeArrayDecodeNodeTemplate;
 
 /***/ },
 /* 67 */

+ 5 - 5
package.json

@@ -22,7 +22,7 @@
   "dependencies": {
     "babel-polyfill": "^6.13.0",
     "chance": "^1.0.4",
-    "class-validator": "next",
+    "class-validator": "^0.6.0",
     "commander": "^2.9.0",
     "escodegen": "^1.8.1",
     "esprima": "^3.0.0",
@@ -47,18 +47,18 @@
     "@types/sinon": "^1.16.29",
     "babel-cli": "^6.14.0",
     "babel-loader": "^6.2.5",
-    "babel-preset-es2015": "^6.13.2",
+    "babel-preset-es2015": "^6.14.0",
     "chai": "^3.5.0",
-    "coveralls": "^2.11.12",
+    "coveralls": "^2.11.14",
     "istanbul": "1.1.0-alpha.1",
     "mocha": "^3.0.2",
-    "sinon": "^2.0.0-pre.2",
+    "sinon": "^2.0.0-pre.3",
     "ts-loader": "^0.8.2",
     "ts-node": "^1.3.0",
     "tslint": "^3.15.1",
     "typescript": "^2.0.0",
     "webpack": "^2.1.0-beta.22",
-    "webpack-node-externals": "^1.3.3"
+    "webpack-node-externals": "^1.4.3"
   },
   "repository": {
     "type": "git",

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

@@ -12,7 +12,7 @@ import { NO_CUSTOM_NODES_PRESET } from "../../preset-options/NoCustomNodesPreset
 
 import { AtobTemplate } from "../../templates/custom-nodes/AtobTemplate";
 import { SelfDefendingTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/SelfDefendingTemplate";
-import { UnicodeArrayDecodeTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeTemplate";
+import { UnicodeArrayDecodeNodeTemplate } from "../../templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeNodeTemplate";
 
 import { AbstractCustomNode } from '../AbstractCustomNode';
 import { JavaScriptObfuscator } from '../../JavaScriptObfuscator';
@@ -88,7 +88,7 @@ export class UnicodeArrayDecodeNode extends AbstractCustomNode {
 
         return NodeUtils.convertCodeToStructure(
             JavaScriptObfuscator.obfuscate(
-                UnicodeArrayDecodeTemplate().formatUnicorn({
+                UnicodeArrayDecodeNodeTemplate().formatUnicorn({
                     atobPolyfill: AtobTemplate(),
                     code,
                     forLoopFunctionName,

+ 1 - 1
src/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeTemplate.ts → src/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeNodeTemplate.ts

@@ -1,7 +1,7 @@
 /**
  * @returns {string}
  */
-export function UnicodeArrayDecodeTemplate (): string {
+export function UnicodeArrayDecodeNodeTemplate (): string {
     return `
         (function () {
            {atobPolyfill}

+ 0 - 0
test/functional-tests/templates/custom-nodes/domain-lock-nodes/DomainLockNode.spec.ts → test/functional-tests/templates/custom-nodes/domain-lock-nodes/DomainLockNodeTemplate.spec.ts


+ 41 - 0
test/functional-tests/templates/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNodeTemplate.spec.ts

@@ -0,0 +1,41 @@
+import 'format-unicorn';
+
+import { AtobTemplate } from "../../../../../src/templates/custom-nodes/AtobTemplate";
+import { UnicodeArrayDecodeNodeTemplate } from "../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-decode-node/UnicodeArrayDecodeNodeTemplate";
+
+import { Utils } from "../../../../../src/Utils";
+
+const assert: Chai.AssertStatic = require('chai').assert;
+
+/**
+ * @param templateData
+ * @param unicodeArrayName
+ * @returns {Function}
+ */
+function getFunctionFromTemplate (templateData: any, unicodeArrayName: string) {
+    let domainLockTemplate: string = UnicodeArrayDecodeNodeTemplate().formatUnicorn(templateData);
+
+    return Function(`
+        var ${unicodeArrayName} = ['${Utils.btoa('test1')}', '${Utils.btoa('test2')}'];
+    
+        ${domainLockTemplate}
+        
+        return ${unicodeArrayName};
+    `)();
+}
+
+describe('UnicodeArrayDecodeNodeTemplate (): string', () => {
+    let forLoopFunctionName: string = 'forLoop',
+        code: string = `${forLoopFunctionName}();`,
+        unicodeArrayName: string = 'unicodeArray';
+
+    it('should correctly decode unicode array items from Base64', () => {
+        assert.deepEqual(getFunctionFromTemplate({
+            atobPolyfill: AtobTemplate(),
+            code,
+            forLoopFunctionName,
+            unicodeArrayName: unicodeArrayName
+        }, unicodeArrayName), ['test1', 'test2']);
+    });
+
+});

+ 2 - 1
test/index.spec.ts

@@ -34,4 +34,5 @@ import './functional-tests/node-obfuscators/MemberExpressionObfuscator.spec';
 import './functional-tests/node-obfuscators/MethodDefinitionObfuscator.spec';
 import './functional-tests/node-obfuscators/ObjectExpressionObfuscator.spec';
 import './functional-tests/node-obfuscators/VariableDeclarationObfuscator.spec';
-import './functional-tests/templates/custom-nodes/domain-lock-nodes/DomainLockNode.spec';
+import './functional-tests/templates/custom-nodes/domain-lock-nodes/DomainLockNodeTemplate.spec';
+import './functional-tests/templates/custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNodeTemplate.spec';