|
@@ -7,48 +7,19 @@ import { JavaScriptObfuscator } from "../../../src/JavaScriptObfuscator";
|
|
|
const assert: Chai.AssertStatic = require('chai').assert;
|
|
|
|
|
|
describe('LiteralObfuscator', () => {
|
|
|
- describe('obfuscateNode (literalNode: ILiteralNode, parentNode: INode): void', () => {
|
|
|
- describe('obfuscation of literal node with string value', () => {
|
|
|
- it('should replace literal node value with unicode value without encoding to base64', () => {
|
|
|
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
|
|
|
- `var test = 'test';`,
|
|
|
- Object.assign({}, NO_CUSTOM_NODES_PRESET)
|
|
|
- );
|
|
|
-
|
|
|
- assert.match(obfuscationResult.getObfuscatedCode(), /^var *test *= *'\\x74\\x65\\x73\\x74';$/);
|
|
|
- });
|
|
|
-
|
|
|
- it('should replace literal node value with unicode value with encoding to base64', () => {
|
|
|
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
|
|
|
- `var test = 'test';`,
|
|
|
- Object.assign({}, NO_CUSTOM_NODES_PRESET, {
|
|
|
- encodeUnicodeLiterals: true,
|
|
|
- unicodeArray: true,
|
|
|
- unicodeArrayThreshold: 1
|
|
|
- })
|
|
|
- );
|
|
|
-
|
|
|
- assert.match(obfuscationResult.getObfuscatedCode(), /^var *_0x([a-z0-9]){4} *= *\['\\x64\\x47\\x56\\x7a\\x64\\x41\\x3d\\x3d'\];/);
|
|
|
- assert.match(obfuscationResult.getObfuscatedCode(), /var *test *= *_0x([a-z0-9]){4}\('0x0'\);/);
|
|
|
- });
|
|
|
- });
|
|
|
-
|
|
|
- it('should obfuscate literal node with boolean value', () => {
|
|
|
+ describe('obfuscation of literal node with string value', () => {
|
|
|
+ it('should replace literal node value with unicode value without encoding to base64', () => {
|
|
|
let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
|
|
|
- `var test = true;`,
|
|
|
- Object.assign({}, NO_CUSTOM_NODES_PRESET, {
|
|
|
- encodeUnicodeLiterals: true,
|
|
|
- unicodeArray: true,
|
|
|
- unicodeArrayThreshold: 1
|
|
|
- })
|
|
|
+ `var test = 'test';`,
|
|
|
+ Object.assign({}, NO_CUSTOM_NODES_PRESET)
|
|
|
);
|
|
|
|
|
|
- assert.match(obfuscationResult.getObfuscatedCode(), /^var *test *= *!!\[\];$/);
|
|
|
+ assert.match(obfuscationResult.getObfuscatedCode(), /^var *test *= *'\\x74\\x65\\x73\\x74';$/);
|
|
|
});
|
|
|
|
|
|
- it('should obfuscate literal node with number value', () => {
|
|
|
+ it('should replace literal node value with unicode value with encoding to base64', () => {
|
|
|
let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
|
|
|
- `var test = 0;`,
|
|
|
+ `var test = 'test';`,
|
|
|
Object.assign({}, NO_CUSTOM_NODES_PRESET, {
|
|
|
encodeUnicodeLiterals: true,
|
|
|
unicodeArray: true,
|
|
@@ -56,7 +27,34 @@ describe('LiteralObfuscator', () => {
|
|
|
})
|
|
|
);
|
|
|
|
|
|
- assert.match(obfuscationResult.getObfuscatedCode(), /^var *test *= *0x0;$/);
|
|
|
+ assert.match(obfuscationResult.getObfuscatedCode(), /^var *_0x([a-z0-9]){4} *= *\['\\x64\\x47\\x56\\x7a\\x64\\x41\\x3d\\x3d'\];/);
|
|
|
+ assert.match(obfuscationResult.getObfuscatedCode(), /var *test *= *_0x([a-z0-9]){4}\('0x0'\);/);
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ it('should obfuscate literal node with boolean value', () => {
|
|
|
+ let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
|
|
|
+ `var test = true;`,
|
|
|
+ Object.assign({}, NO_CUSTOM_NODES_PRESET, {
|
|
|
+ encodeUnicodeLiterals: true,
|
|
|
+ unicodeArray: true,
|
|
|
+ unicodeArrayThreshold: 1
|
|
|
+ })
|
|
|
+ );
|
|
|
+
|
|
|
+ assert.match(obfuscationResult.getObfuscatedCode(), /^var *test *= *!!\[\];$/);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('should obfuscate literal node with number value', () => {
|
|
|
+ let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
|
|
|
+ `var test = 0;`,
|
|
|
+ Object.assign({}, NO_CUSTOM_NODES_PRESET, {
|
|
|
+ encodeUnicodeLiterals: true,
|
|
|
+ unicodeArray: true,
|
|
|
+ unicodeArrayThreshold: 1
|
|
|
+ })
|
|
|
+ );
|
|
|
+
|
|
|
+ assert.match(obfuscationResult.getObfuscatedCode(), /^var *test *= *0x0;$/);
|
|
|
+ });
|
|
|
});
|