Added example for stringArrayWrappersType option

This commit is contained in:
sanex
2020-09-17 20:30:10 +03:00
parent a22eea0e80
commit 423a616cd7
2 changed files with 45 additions and 2 deletions
+31
View File
@@ -1076,6 +1076,37 @@ Available values:
* `'function'`: appends function wrappers. More slow performance than with `variable` but allows to additionally shift the `stringArray` index.
Highly recommended to use `function` wrappers for higher obfuscation when a performance loss doesn't have a high impact on an obfuscated application.
Example of the `'function'` option value:
```
// input
const foo = 'foo';
function test () {
const bar = 'bar';
}
// output
const a = [
'foo',
'bar'
];
const b = function (c, d) {
c = c - 0x0;
let e = a[c];
return e;
};
const d = function (c, f) {
return b(c - '0x372', f);
};
const foo = d('0x372');
function test() {
const e = function (c, f) {
return d(c - -'0x260', f);
};
const c = e('0x113');
}
```
### `stringArrayThreshold`
Type: `number` Default: `0.8` Min: `0` Max: `1`
+14 -2
View File
@@ -1,17 +1,29 @@
'use strict';
import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNodes';
import { IdentifierNamesGenerator } from '../../src/enums/generators/identifier-names-generators/IdentifierNamesGenerator';
import { StringArrayWrappersType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayWrappersType';
(function () {
const JavaScriptObfuscator: any = require('../../index');
let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
`
const s = '\0ab cd';
const foo = 'foo';
function test () {
const bar = 'bar';
}
`,
{
...NO_ADDITIONAL_NODES_PRESET,
compact: false
compact: false,
identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator,
stringArray: true,
stringArrayThreshold: 1,
stringArrayWrappersChainedCalls: true,
stringArrayWrappersCount: 1,
stringArrayWrappersType: StringArrayWrappersType.Function
}
).getObfuscatedCode();