mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
stringArrayIntermediateVariablesCount option rework
This commit is contained in:
@@ -25,7 +25,7 @@ export class StringArrayCallsWrapperBase64CodeHelper extends StringArrayCallsWra
|
||||
atobPolyfill,
|
||||
atobFunctionName,
|
||||
selfDefendingCode,
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperNames.name
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -9,13 +9,11 @@ import { ICustomCodeHelperObfuscator } from '../../interfaces/custom-code-helper
|
||||
import { IEscapeSequenceEncoder } from '../../interfaces/utils/IEscapeSequenceEncoder';
|
||||
import { IOptions } from '../../interfaces/options/IOptions';
|
||||
import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
|
||||
import { IStringArrayCallsWrapperNames } from '../../interfaces/node-transformers/string-array-transformers/IStringArrayCallsWrapperNames';
|
||||
|
||||
import { initializable } from '../../decorators/Initializable';
|
||||
|
||||
import { SelfDefendingTemplate } from './templates/string-array-calls-wrapper/SelfDefendingTemplate';
|
||||
import { StringArrayCallsWrapperTemplate } from './templates/string-array-calls-wrapper/StringArrayCallsWrapperTemplate';
|
||||
import { StringArrayCallsWrapperIntermediateTemplate } from './templates/string-array-calls-wrapper/StringArrayCallsWrapperIntermediateTemplate';
|
||||
|
||||
import { AbstractCustomCodeHelper } from '../AbstractCustomCodeHelper';
|
||||
import { NodeUtils } from '../../node/NodeUtils';
|
||||
@@ -29,10 +27,10 @@ export class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper
|
||||
protected stringArrayName!: string;
|
||||
|
||||
/**
|
||||
* @type {IStringArrayCallsWrapperNames}
|
||||
* @type {string}
|
||||
*/
|
||||
@initializable()
|
||||
protected stringArrayCallsWrapperNames!: IStringArrayCallsWrapperNames;
|
||||
protected stringArrayCallsWrapperName!: string;
|
||||
|
||||
/**
|
||||
* @type {IEscapeSequenceEncoder}
|
||||
@@ -69,14 +67,14 @@ export class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper
|
||||
|
||||
/**
|
||||
* @param {string} stringArrayName
|
||||
* @param {IStringArrayCallsWrapperNames} stringArrayCallsWrapperNames
|
||||
* @param {string} stringArrayCallsWrapperName
|
||||
*/
|
||||
public initialize (
|
||||
stringArrayName: string,
|
||||
stringArrayCallsWrapperNames: IStringArrayCallsWrapperNames
|
||||
stringArrayCallsWrapperName: string
|
||||
): void {
|
||||
this.stringArrayName = stringArrayName;
|
||||
this.stringArrayCallsWrapperNames = stringArrayCallsWrapperNames;
|
||||
this.stringArrayCallsWrapperName = stringArrayCallsWrapperName;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -92,15 +90,13 @@ export class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper
|
||||
*/
|
||||
protected getCodeHelperTemplate (): string {
|
||||
const decodeCodeHelperTemplate: string = this.getDecodeStringArrayTemplate();
|
||||
const intermediateTemplate: string = this.getIntermediateTemplate();
|
||||
|
||||
const preservedNames: string[] = [`^${this.stringArrayName}$`];
|
||||
|
||||
return this.customCodeHelperObfuscator.obfuscateTemplate(
|
||||
this.customCodeHelperFormatter.formatTemplate(StringArrayCallsWrapperTemplate(), {
|
||||
decodeCodeHelperTemplate,
|
||||
intermediateTemplate,
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperNames.name,
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
|
||||
stringArrayName: this.stringArrayName
|
||||
}),
|
||||
{
|
||||
@@ -130,34 +126,9 @@ export class StringArrayCallsWrapperCodeHelper extends AbstractCustomCodeHelper
|
||||
this.escapeSequenceEncoder
|
||||
),
|
||||
{
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperNames.name,
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
|
||||
stringArrayName: this.stringArrayName
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
private getIntermediateTemplate (): string {
|
||||
const stringArrayCallsWrapperIntermediateNamesLength: number = this.stringArrayCallsWrapperNames
|
||||
.intermediateNames
|
||||
.length;
|
||||
|
||||
let intermediateTemplate: string = '';
|
||||
|
||||
for (let i = 0; i < stringArrayCallsWrapperIntermediateNamesLength; i++) {
|
||||
const intermediateName: string = this.stringArrayCallsWrapperNames.intermediateNames[i];
|
||||
|
||||
intermediateTemplate += this.customCodeHelperFormatter.formatTemplate(
|
||||
StringArrayCallsWrapperIntermediateTemplate(),
|
||||
{
|
||||
intermediateName,
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperNames.name
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return intermediateTemplate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ export class StringArrayCallsWrapperRc4CodeHelper extends StringArrayCallsWrappe
|
||||
atobPolyfill,
|
||||
rc4Polyfill,
|
||||
selfDefendingCode,
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperNames.name
|
||||
stringArrayCallsWrapperName: this.stringArrayCallsWrapperName
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import { ICallsGraphData } from '../../../interfaces/analyzers/calls-graph-analy
|
||||
import { ICustomCodeHelper } from '../../../interfaces/custom-code-helpers/ICustomCodeHelper';
|
||||
import { IOptions } from '../../../interfaces/options/IOptions';
|
||||
import { IRandomGenerator } from '../../../interfaces/utils/IRandomGenerator';
|
||||
import { IStringArrayCallsWrapperNames } from '../../../interfaces/node-transformers/string-array-transformers/IStringArrayCallsWrapperNames';
|
||||
import { IStringArrayStorage } from '../../../interfaces/storages/string-array-transformers/IStringArrayStorage';
|
||||
|
||||
import { initializable } from '../../../decorators/Initializable';
|
||||
@@ -139,12 +138,11 @@ export class StringArrayCodeHelperGroup extends AbstractCustomCodeHelperGroup {
|
||||
const stringArrayCallsWrapperCodeHelperName: CustomCodeHelper = this.getStringArrayCallsWrapperCodeHelperName(stringArrayEncoding);
|
||||
const stringArrayCallsWrapperCodeHelper: ICustomCodeHelper<TInitialData<StringArrayCallsWrapperCodeHelper>> =
|
||||
this.customCodeHelperFactory(stringArrayCallsWrapperCodeHelperName);
|
||||
const stringArrayCallsWrapperNames: IStringArrayCallsWrapperNames =
|
||||
this.stringArrayStorage.getStorageCallsWrapperNames(stringArrayEncoding);
|
||||
const stringArrayCallsWrapperName: string = this.stringArrayStorage.getStorageCallsWrapperName(stringArrayEncoding);
|
||||
|
||||
stringArrayCallsWrapperCodeHelper.initialize(
|
||||
stringArrayName,
|
||||
stringArrayCallsWrapperNames
|
||||
stringArrayCallsWrapperName
|
||||
);
|
||||
|
||||
this.customCodeHelpers.set(stringArrayCallsWrapperCodeHelperName, stringArrayCallsWrapperCodeHelper);
|
||||
|
||||
-2
@@ -12,7 +12,5 @@ export function StringArrayCallsWrapperTemplate (): string {
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
{intermediateTemplate}
|
||||
`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user