From 56955aee3d65e506cb23a85680bcfda010fe60c0 Mon Sep 17 00:00:00 2001 From: sanex Date: Sun, 6 Feb 2022 00:10:32 +0300 Subject: [PATCH] 3.2.1 version --- CHANGELOG.md | 4 ++++ README.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++-- package.json | 2 +- 3 files changed, 67 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cf19ced..9520119b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ Change Log +v3.2.1 +--- +* Updated copyright + v3.2.0 --- * **New options**: `stringArrayCallsTransform` and `stringArrayCallsTransformThreshold` diff --git a/README.md b/README.md index 156f5557..1c52b643 100644 --- a/README.md +++ b/README.md @@ -1102,11 +1102,71 @@ Type: `boolean` Default: `true` Removes string literals and place them in a special array. For instance, the string `"Hello World"` in `var m = "Hello World";` will be replaced with something like `var m = _0x12c456[0x1];` ### `stringArrayCallsTransform` -Type: `boolean` Default: `true` +Type: `boolean` Default: `false` ##### :warning: [`stringArray`](#stringarray) option must be enabled -Enables the transformation of calls to the [`stringArray`](#stringarray). All arguments of these calls may be extracted to different object depending on [`stringArrayCallsTransformThreshold`](#stringarraycallstransformthreshold) value. +Enables the transformation of calls to the [`stringArray`](#stringarray). All arguments of these calls may be extracted to a different object depending on [`stringArrayCallsTransformThreshold`](#stringarraycallstransformthreshold) value. +So it makes it even harder to automatically find calls to the string array. + +Example: +``` +function foo() { + var k = { + c: 0x2f2, + d: '0x396', + e: '0x397', + f: '0x39a', + g: '0x39d', + h: 0x398, + l: 0x394, + m: '0x39b', + n: '0x39f', + o: 0x395, + p: 0x395, + q: 0x399, + r: '0x399' + }; + var c = i(k.d, k.e); + var d = i(k.f, k.g); + var e = i(k.h, k.l); + var f = i(k.m, k.n); + function i(c, d) { + return b(c - k.c, d); + } + var g = i(k.o, k.p); + var h = i(k.q, k.r); +} +function j(c, d) { + var l = { c: 0x14b }; + return b(c - -l.c, d); +} +console[j(-'0xa6', -'0xa6')](foo()); +function b(c, d) { + var e = a(); + b = function (f, g) { + f = f - 0xa3; + var h = e[f]; + return h; + }; + return b(c, d); +} +function a() { + var m = [ + 'string5', + 'string1', + 'log', + 'string3', + 'string6', + 'string2', + 'string4' + ]; + a = function () { + return m; + }; + return a(); +} +``` ### `stringArrayCallsTransformThreshold` Type: `number` Default: `0.5` diff --git a/package.json b/package.json index 37d30c77..a2fcc245 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "javascript-obfuscator", - "version": "3.2.0", + "version": "3.2.1", "description": "JavaScript obfuscator", "keywords": [ "obfuscator",