mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
New option ignoreRequireImports prevents obfuscation of require imports
This commit is contained in:
+67
@@ -0,0 +1,67 @@
|
||||
import { assert } from 'chai';
|
||||
|
||||
import { JavaScriptObfuscator } from '../../../../../../src/JavaScriptObfuscatorFacade';
|
||||
|
||||
import { NO_ADDITIONAL_NODES_PRESET } from '../../../../../../src/options/presets/NoCustomNodes';
|
||||
|
||||
import { readFileAsString } from '../../../../../helpers/readFileAsString';
|
||||
|
||||
describe('IgnoredRequireImportObfuscatingGuard', () => {
|
||||
describe('check', () => {
|
||||
describe('`ignoreRequireImports` option is enabled', () => {
|
||||
const obfuscatingGuardRegExp: RegExp = new RegExp(
|
||||
'const foo *= *require\\(\'\\./foo\'\\); *' +
|
||||
'import _0x(?:[a-f0-9]){4,6} from *\'\\./bar\'; *' +
|
||||
'const baz *= *_0x(?:[a-f0-9]){4,6}\\(\'0x0\'\\);'
|
||||
);
|
||||
|
||||
let obfuscatedCode: string;
|
||||
|
||||
beforeEach(() => {
|
||||
const code: string = readFileAsString(__dirname + '/fixtures/base-behaviour.js');
|
||||
|
||||
obfuscatedCode = JavaScriptObfuscator.obfuscate(
|
||||
code,
|
||||
{
|
||||
...NO_ADDITIONAL_NODES_PRESET,
|
||||
ignoreRequireImports: true,
|
||||
stringArray: true,
|
||||
stringArrayThreshold: 1
|
||||
}
|
||||
).getObfuscatedCode();
|
||||
});
|
||||
|
||||
it('match #1: shouldn\'t obfuscate require import', () => {
|
||||
assert.match(obfuscatedCode, obfuscatingGuardRegExp);
|
||||
});
|
||||
});
|
||||
|
||||
describe('`ignoreRequireImports` option is disabled', () => {
|
||||
const obfuscatingGuardRegExp: RegExp = new RegExp(
|
||||
'const foo *= *require\\(_0x(?:[a-f0-9]){4,6}\\(\'0x0\'\\)\\); *' +
|
||||
'import _0x(?:[a-f0-9]){4,6} from *\'\\./bar\'; *' +
|
||||
'const baz *= *_0x(?:[a-f0-9]){4,6}\\(\'0x1\'\\);'
|
||||
);
|
||||
|
||||
let obfuscatedCode: string;
|
||||
|
||||
beforeEach(() => {
|
||||
const code: string = readFileAsString(__dirname + '/fixtures/base-behaviour.js');
|
||||
|
||||
obfuscatedCode = JavaScriptObfuscator.obfuscate(
|
||||
code,
|
||||
{
|
||||
...NO_ADDITIONAL_NODES_PRESET,
|
||||
ignoreRequireImports: false,
|
||||
stringArray: true,
|
||||
stringArrayThreshold: 1
|
||||
}
|
||||
).getObfuscatedCode();
|
||||
});
|
||||
|
||||
it('match #1: should obfuscate require import', () => {
|
||||
assert.match(obfuscatedCode, obfuscatingGuardRegExp);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
const foo = require('./foo');
|
||||
import bar from './bar';
|
||||
const baz = 'baz';
|
||||
@@ -102,6 +102,7 @@ import './functional-tests/node-transformers/preparing-transformers/eval-call-ex
|
||||
import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/black-list-obfuscating-guard/BlackListObfuscatingGuard.spec';
|
||||
import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/conditional-comment-obfuscating-guard/ConditionalCommentObfuscatingGuard.spec';
|
||||
import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/force-transform-string-obfuscating-guard/ForceTransformStringObfuscatingGuard.spec';
|
||||
import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/ignored-require-import-obfuscating-guard/IgnoredRequireImportObfuscatingGuard.spec';
|
||||
import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/reserved-string-obfuscating-guard/ReservedStringObfuscatingGuard.spec';
|
||||
import './functional-tests/node-transformers/preparing-transformers/variable-preserve-transformer/VariablePreserveTransformer.spec';
|
||||
import './functional-tests/node-transformers/rename-identifiers-transformers/identifier-replacer/IdentifierReplacer.spec';
|
||||
|
||||
Reference in New Issue
Block a user