diff --git a/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts b/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts index 14cbb325..b3b91111 100644 --- a/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts +++ b/test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts @@ -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' ); });