12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import { IObfuscationResult } from "../../../src/interfaces/IObfuscationResult";
- import { NO_CUSTOM_NODES_PRESET } from "../../../src/preset-options/NoCustomNodesPreset";
- import { JavaScriptObfuscator } from "../../../src/JavaScriptObfuscator";
- const assert: Chai.AssertStatic = require('chai').assert;
- describe('VariableDeclarationObfuscator', () => {
- it('should obfuscate `variableDeclaration` node', () => {
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
- `
- function foo () {
- var test = 'abc';
- console.log(test);
- }
- `,
- Object.assign({}, NO_CUSTOM_NODES_PRESET)
- );
- assert.match(obfuscationResult.getObfuscatedCode(), /var *_0x([a-z0-9]){6} *= *'\\x61\\x62\\x63';/);
- assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(_0x([a-z0-9]){6}\);/);
- });
- it('should obfuscate variable call (`identifier` node) outside of block scope of node in which this variable was declared with `var` kind', () => {
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
- `
- if (true)
- {
- var test = 10;
- }
-
- console.log(test);
- `,
- Object.assign({}, NO_CUSTOM_NODES_PRESET)
- );
- assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(_0x([a-z0-9]){6}\);/);
- });
- it('should not obfuscate variable call (`identifier` node) outside of block scope of node in which this variable was declared with `let` kind', () => {
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
- `
- if (true)
- {
- let test = 10;
- }
-
- console.log(test);
- `,
- Object.assign({}, NO_CUSTOM_NODES_PRESET)
- );
- assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(test\);/);
- });
- describe(`variable calls before variable declaration`, () => {
- let obfuscationResult: IObfuscationResult;
- beforeEach(() => {
- obfuscationResult = JavaScriptObfuscator.obfuscate(
- `
- function foo () {
- function bar () {
- console.log(abc.item);
- }
-
- console.log(abc);
-
- var abc = {};
-
- abc.item = 15;
- bar();
- }
- `,
- Object.assign({}, NO_CUSTOM_NODES_PRESET)
- );
- });
- it('should obfuscate variable call (`identifier` node) before variable declaration if this call is inside function body', () => {
- assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(_0x([a-z0-9]){6}\['\\x69\\x74\\x65\\x6d'\]\);/);
- });
- it('should not obfuscate variable call (`identifier` node) before variable declaration', () => {
- assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(abc\);/);
- });
- });
- });
|