String Concealing

Potency Medium
Resilience Low
Cost Medium
Tags: string, conceal, obfuscation

Description

Consider the following variable declarations holding string literal values:

var protocol = 'http';
var domain = 'jscrambler.com';
var url = protocol + '://' + domain;

The code will look something like this after transformation:

var o = {
  f: function() { /* decoding algorithm and encoded data */ }
}
var protocol = o.f(13);
var domain = o.f(32);
var url = protocol + o.f(7) + domain;

Consider using Identifiers Renaming to remove the remaining information that is useful for a human to understand what the variables mean, forcing the user to debug the code in run-time.

Code Annotation Example

// @jscrambler enable stringConcealing

Option Types

Name Required Default Value Description
freq No 1 Probability of applying the transformation when the node allows for the transformation to happen.
min No N/A Minimum number of times the transformation is applied on the node.
max No -1 Maximum number of times the transformation is applied on the node.

API Parameters

Example:

{
  "keys": {
    "accessKey": "XXXXXX",
    "secretKey": "YYYYYY"
  },
  "applicationId": "ZZZZZZ",
  "params": [
    {
      "name": "stringConcealing",
      "options": {}
    }
  ]
}