10000 Merge pull request #488 from javascript-obfuscator/issue-360 · sec-js/javascript-obfuscator@f8abc30 · GitHub
[go: up one dir, main page]

Skip to content

Commit f8abc30

Browse files
authored
Merge pull request javascript-obfuscator#488 from javascript-obfuscator/issue-360
Fix of wrong mark as `renamedIdentifier` inside `importDeclarationTransformer`
2 parents 2502a5d + f29802f commit f8abc30

File tree

9 files changed

+43
-41
lines changed

9 files changed

+43
-41
lines changed

dist/index.browser.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.cli.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/node-transformers/obfuscating-transformers/ImportDeclarationTransformer.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,10 @@ export class ImportDeclarationTransformer extends AbstractNodeTransformer {
141141
const newReplaceableIdentifier: ESTree.Identifier = this.identifierObfuscatingReplacer
142142
.replace(replaceableIdentifier.name, lexicalScopeNode);
143143

144-
replaceableIdentifier.name = newReplaceableIdentifier.name;
144+
if (replaceableIdentifier.name !== newReplaceableIdentifier.name) {
145+
replaceableIdentifier.name = newReplaceableIdentifier.name;
146+
NodeMetadata.set(replaceableIdentifier, { renamedIdentifier: true });
147+
}
145148
});
146149
}
147150

test/functional-tests/issues/fixtures/issue360.js

Lines changed: 0 additions & 3 deletions
This file was deleted.

test/functional-tests/issues/issue360.spec.ts

Lines changed: 0 additions & 33 deletions
This file was deleted.

test/functional-tests/node-transformers/obfuscating-transformers/impot-declaration-transformer/ImportDeclarationTransformer.spec.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,5 +141,37 @@ describe('ImportDeclarationTransformer', () => {
141141
assert.equal(importSpecifierIdentifier, consoleLogIdentifier);
142142
});
143143
});
144+
145+
describe('Variant #5: Issue-360, prevent of set `renamedIdentifier` metadata property of all traversed identifiers', () => {
146+
const importSpecifierRegExp1: RegExp = /import _0x[a-f0-9]{4,6} *from *'foo';/;
147+
const importSpecifierRegExp2: RegExp = /import _0x[a-f0-9]{4,6} *from *'bar';/;
148+
const variableDeclarationIdentifierRegExp: RegExp = /const _0x[a-f0-9]{4,6} *= *0x1;/;
149+
150+
let obfuscatedCode: string;
151+
152+
before(() => {
153+
const code: string = readFileAsString(__dirname + '/fixtures/no-invalid-mark-as-renamed-identifier.js');
154+
155+
obfuscatedCode = JavaScriptObfuscator.obfuscate(
156+
code,
157+
{
158+
...NO_ADDITIONAL_NODES_PRESET,
159+
renameGlobals: true
160+
}
161+
).getObfuscatedCode();
162+
});
163+
164+
it('Match 1: should transform first import specifier identifier name', () => {
165+
assert.match(obfuscatedCode, importSpecifierRegExp1);
166+
});
167+
168+
it('Match 2: should transform second import specifier identifier name', () => {
169+
assert.match(obfuscatedCode, importSpecifierRegExp2);
170+
});
171+
172+
it('Match 3: should transform variable declaration identifier name', () => {
173+
assert.match(obfuscatedCode, variableDeclarationIdentifierRegExp);
174+
});
175+
});
144176
});
145177
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import foo from 'foo';
2+
import bar from 'bar';
3+
4+
const baz = 1;

test/index.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ import './functional-tests/custom-nodes/string-array-nodes/StringArrayRotateFunc
5151
import './functional-tests/custom-nodes/string-array-nodes/StringArrayNode.spec';
5252
import './functional-tests/issues/issue321.spec';
5353
import './functional-tests/issues/issue355.spec';
54-
import './functional-tests/issues/issue360.spec';
5554
import './functional-tests/issues/issue419.spec';
5655
import './functional-tests/issues/issue424.spec';
5756
import './functional-tests/issues/issue437.spec';

0 commit comments

Comments
 (0)
0