فهرست منبع

Added example for `stringArrayWrappersType` option

sanex 4 سال پیش
والد
کامیت
423a616cd7
2فایلهای تغییر یافته به همراه45 افزوده شده و 2 حذف شده
  1. 31 0
      README.md
  2. 14 2
      test/dev/dev.ts

+ 31 - 0
README.md

@@ -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
test/dev/dev.ts

@@ -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();