Updated runtime tests with renamePropertiesMode option

This commit is contained in:
sanex
2021-03-07 13:38:24 +03:00
parent 0acb91ca60
commit 35f6d20f3b
@@ -3,6 +3,7 @@ import { assert } from 'chai';
import { TInputOptions } from '../../src/types/options/TInputOptions';
import { IdentifierNamesGenerator } from '../../src/enums/generators/identifier-names-generators/IdentifierNamesGenerator';
import { RenamePropertiesMode } from '../../src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode';
import { StringArrayEncoding } from '../../src/enums/node-transformers/string-array-transformers/StringArrayEncoding';
import { StringArrayIndexesType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayIndexesType';
import { StringArrayWrappersType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayWrappersType';
@@ -30,7 +31,7 @@ describe('JavaScriptObfuscator runtime eval', function () {
numbersToExpressions: true,
simplify: true,
renameProperties: true,
reservedNames: ['generate', 'sha256'],
renamePropertiesMode: RenamePropertiesMode.Unsafe,
rotateStringArray: true,
selfDefending: true,
splitStrings: true,
@@ -92,78 +93,79 @@ describe('JavaScriptObfuscator runtime eval', function () {
const code: string = readFileAsString(__dirname + '/fixtures/astring.js');
const obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
code,
`
${getEnvironmentCode()}
${code}
const code = generate({
"type": "Program",
"body": [
{
"type": "FunctionDeclaration",
"id": {
"type": "Identifier",
"name": "test",
"range": [
9,
13
]
},
"params": [],
"body": {
"type": "BlockStatement",
"body": [
{
"type": "ReturnStatement",
"argument": {
"type": "Literal",
"value": "foo",
"raw": "'foo'",
"range": [
30,
35
]
},
"range": [
23,
36
]
}
],
"range": [
17,
38
]
},
"generator": false,
"expression": false,
"async": false,
"range": [
0,
38
]
}
],
"sourceType": "module",
"range": [
0,
38
],
"comments": []
});
eval(\`\${code} test();\`);
`,
{
...baseOptions,
...options,
renameProperties: false
renamePropertiesMode: RenamePropertiesMode.Safe,
reservedNames: ['generate']
}
).getObfuscatedCode();
let evaluationResult: string;
try {
evaluationResult = eval(`
${getEnvironmentCode()}
${obfuscatedCode}
const code = generate({
"type": "Program",
"body": [
{
"type": "FunctionDeclaration",
"id": {
"type": "Identifier",
"name": "test",
"range": [
9,
13
]
},
"params": [],
"body": {
"type": "BlockStatement",
"body": [
{
"type": "ReturnStatement",
"argument": {
"type": "Literal",
"value": "foo",
"raw": "'foo'",
"range": [
30,
35
]
},
"range": [
23,
36
]
}
],
"range": [
17,
38
]
},
"generator": false,
"expression": false,
"async": false,
"range": [
0,
38
]
}
],
"sourceType": "module",
"range": [
0,
38
],
"comments": []
});
eval(\`\${code} test();\`);
`)
evaluationResult = eval(obfuscatedCode)
} catch (e) {
throw new Error(`Evaluation error: ${e.message}. Code: ${obfuscatedCode}`);
}
@@ -177,19 +179,20 @@ describe('JavaScriptObfuscator runtime eval', function () {
const code: string = readFileAsString(__dirname + '/fixtures/sha256.js');
const obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
code,
`
${getEnvironmentCode()}
${code}
sha256('test');
`,
{
...baseOptions,
...options
...options,
reservedNames: ['sha256']
}
).getObfuscatedCode();
assert.equal(
eval(`
${getEnvironmentCode()}
${obfuscatedCode}
sha256('test');
`),
eval(obfuscatedCode),
'9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'
);
});