mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
Prevented mutation of the name sequences of mangled identifier name generators
This commit is contained in:
@@ -60,11 +60,9 @@ export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGene
|
||||
|
||||
@postConstruct()
|
||||
public initialize (): void {
|
||||
if (!MangledIdentifierNamesGenerator.nameSequence) {
|
||||
MangledIdentifierNamesGenerator.nameSequence = [
|
||||
...`${numbersString}${alphabetString}${alphabetStringUppercase}`
|
||||
];
|
||||
}
|
||||
this.initializeNameSequence([
|
||||
...`${numbersString}${alphabetString}${alphabetStringUppercase}`
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -138,13 +136,29 @@ export class MangledIdentifierNamesGenerator extends AbstractIdentifierNamesGene
|
||||
&& !MangledIdentifierNamesGenerator.reservedNamesSet.has(mangledName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string[]} nameSequence
|
||||
*/
|
||||
protected initializeNameSequence (nameSequence: string[]): void {
|
||||
if (!this.getNameSequence()) {
|
||||
MangledIdentifierNamesGenerator.nameSequence = nameSequence;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string[]}
|
||||
*/
|
||||
protected getNameSequence (): string[] {
|
||||
return MangledIdentifierNamesGenerator.nameSequence;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} previousMangledName
|
||||
* @returns {string}
|
||||
*/
|
||||
private generateNewMangledName (previousMangledName: string): string {
|
||||
protected generateNewMangledName (previousMangledName: string): string {
|
||||
const generateNewMangledName: (name: string) => string = (name: string): string => {
|
||||
const nameSequence: string[] = MangledIdentifierNamesGenerator.nameSequence;
|
||||
const nameSequence: string[] = this.getNameSequence();
|
||||
const nameSequenceLength: number = nameSequence.length;
|
||||
const nameLength: number = name.length;
|
||||
|
||||
|
||||
+32
-5
@@ -13,6 +13,11 @@ import { MangledIdentifierNamesGenerator } from './MangledIdentifierNamesGenerat
|
||||
|
||||
@injectable()
|
||||
export class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNamesGenerator {
|
||||
/**
|
||||
* @type {string[]}
|
||||
*/
|
||||
protected static shuffledNameSequence: string[];
|
||||
|
||||
/**
|
||||
* @type {IArrayUtils}
|
||||
*/
|
||||
@@ -35,11 +40,33 @@ export class MangledShuffledIdentifierNamesGenerator extends MangledIdentifierNa
|
||||
|
||||
@postConstruct()
|
||||
public initialize (): void {
|
||||
if (!MangledIdentifierNamesGenerator.nameSequence) {
|
||||
MangledIdentifierNamesGenerator.nameSequence = [
|
||||
...`${numbersString}`,
|
||||
...this.arrayUtils.shuffle([...`${alphabetString}${alphabetStringUppercase}`])
|
||||
];
|
||||
this.initializeNameSequence([
|
||||
...`${numbersString}`,
|
||||
...this.arrayUtils.shuffle([...`${alphabetString}${alphabetStringUppercase}`])
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string[]} nameSequence
|
||||
*/
|
||||
protected initializeNameSequence (nameSequence: string[]): void {
|
||||
if (!this.getNameSequence()) {
|
||||
MangledShuffledIdentifierNamesGenerator.shuffledNameSequence = nameSequence;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string[]}
|
||||
*/
|
||||
protected getNameSequence (): string[] {
|
||||
return MangledShuffledIdentifierNamesGenerator.shuffledNameSequence;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} previousMangledName
|
||||
* @returns {string}
|
||||
*/
|
||||
protected generateNewMangledName (previousMangledName: string): string {
|
||||
return super.generateNewMangledName(previousMangledName);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user