js-confuser 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- # `2.1.0`
1
+ # `2.1.1`
2
2
  Updates
3
3
 
4
4
  - Moved documentation to Mintlify for improved SEO: [docs.js-confuser.com](https://docs.js-confuser.com)
package/dist/index.js CHANGED
@@ -80,6 +80,7 @@ function _obfuscateWithProfiler() {
80
80
  parseTime,
81
81
  currentTransformTime,
82
82
  beforeCompileTime,
83
+ _Obfuscator$generateC,
83
84
  code,
84
85
  compileTime,
85
86
  endTime,
@@ -129,7 +130,7 @@ function _obfuscateWithProfiler() {
129
130
  }
130
131
  });
131
132
  beforeCompileTime = performance.now();
132
- code = _obfuscator["default"].generateCode(ast, obfuscator.options);
133
+ _Obfuscator$generateC = _obfuscator["default"].generateCode(ast, obfuscator.options), code = _Obfuscator$generateC.code;
133
134
  compileTime = performance.now() - beforeCompileTime;
134
135
  endTime = performance.now();
135
136
  obfuscationTime = endTime - startTime;
@@ -20,10 +20,8 @@ var _dispatcher = _interopRequireDefault(require("./transforms/dispatcher"));
20
20
  var _duplicateLiteralsRemoval = _interopRequireDefault(require("./transforms/extraction/duplicateLiteralsRemoval"));
21
21
  var _objectExtraction = _interopRequireDefault(require("./transforms/extraction/objectExtraction"));
22
22
  var _globalConcealing = _interopRequireDefault(require("./transforms/identifier/globalConcealing"));
23
- var _stringCompression = _interopRequireDefault(require("./transforms/string/stringCompression"));
24
23
  var _deadCode = _interopRequireDefault(require("./transforms/deadCode"));
25
24
  var _stringSplitting = _interopRequireDefault(require("./transforms/string/stringSplitting"));
26
- var _shuffle = _interopRequireDefault(require("./transforms/shuffle"));
27
25
  var _astScrambler = _interopRequireDefault(require("./transforms/astScrambler"));
28
26
  var _calculator = _interopRequireDefault(require("./transforms/calculator"));
29
27
  var _movedDeclarations = _interopRequireDefault(require("./transforms/identifier/movedDeclarations"));
@@ -80,7 +78,6 @@ var Obfuscator = exports["default"] = /*#__PURE__*/function () {
80
78
  renamedVariables: new Map(),
81
79
  // Internal functions, should not be renamed/removed
82
80
  internals: {
83
- stringCompressionLibraryName: "",
84
81
  nativeFunctionName: "",
85
82
  integrityHashName: "",
86
83
  invokeCountermeasuresFnName: ""
@@ -120,10 +117,8 @@ var Obfuscator = exports["default"] = /*#__PURE__*/function () {
120
117
  // String Compression is only applied to the main obfuscator
121
118
  // Any RGF functions will not have string compression due to the size of the decompression function
122
119
 
123
- push(!parentObfuscator && this.options.stringCompression, _stringCompression["default"]);
124
120
  push(this.options.variableMasking, _variableMasking["default"]);
125
121
  push(this.options.duplicateLiteralsRemoval, _duplicateLiteralsRemoval["default"]);
126
- push(this.options.shuffle, _shuffle["default"]);
127
122
  push(this.options.movedDeclarations, _movedDeclarations["default"]);
128
123
  push(this.options.renameLabels, _renameLabels["default"]);
129
124
  push(this.options.minify, _minify["default"]);
@@ -160,9 +155,6 @@ var Obfuscator = exports["default"] = /*#__PURE__*/function () {
160
155
  this.plugins = this.plugins.sort(function (a, b) {
161
156
  return a.pluginInstance.order - b.pluginInstance.order;
162
157
  });
163
- if (!parentObfuscator && this.hasPlugin(_order.Order.StringCompression)) {
164
- this.globalState.internals.stringCompressionLibraryName = this.nameGen.generate(false);
165
- }
166
158
  }
167
159
  return _createClass(Obfuscator, [{
168
160
  key: "isInternalVariable",
@@ -217,14 +209,6 @@ var Obfuscator = exports["default"] = /*#__PURE__*/function () {
217
209
  var hasNativeCode = typeof fn === "function" && ("" + fn).includes("[native code]");
218
210
  return hasNativeCode;
219
211
  }
220
- }, {
221
- key: "getStringCompressionLibraryName",
222
- value: function getStringCompressionLibraryName() {
223
- if (this.parentObfuscator) {
224
- return this.parentObfuscator.getStringCompressionLibraryName();
225
- }
226
- return this.globalState.internals.stringCompressionLibraryName;
227
- }
228
212
  }, {
229
213
  key: "getObfuscatedVariableName",
230
214
  value: function getObfuscatedVariableName(originalName, programNode) {
@@ -273,7 +257,7 @@ var Obfuscator = exports["default"] = /*#__PURE__*/function () {
273
257
  key: "obfuscate",
274
258
  value: function () {
275
259
  var _obfuscate = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(sourceCode) {
276
- var ast, code;
260
+ var ast, _this$generateCode, code, map;
277
261
  return _regenerator().w(function (_context) {
278
262
  while (1) switch (_context.n) {
279
263
  case 0:
@@ -282,9 +266,14 @@ var Obfuscator = exports["default"] = /*#__PURE__*/function () {
282
266
  ast = this.obfuscateAST(ast);
283
267
 
284
268
  // Generate the transformed code from the modified AST with comments removed and compacted output
285
- code = this.generateCode(ast);
269
+ _this$generateCode = this.generateCode(ast), code = _this$generateCode.code, map = _this$generateCode.map;
270
+ if (map) {
271
+ map.sourcesContent = [sourceCode];
272
+ }
286
273
  return _context.a(2, {
287
- code: code
274
+ code: code,
275
+ map: map,
276
+ ast: ast
288
277
  });
289
278
  }
290
279
  }, _callee, this);
@@ -431,19 +420,21 @@ var Obfuscator = exports["default"] = /*#__PURE__*/function () {
431
420
  }], [{
432
421
  key: "generateCode",
433
422
  value: function generateCode(ast) {
423
+ var _options$sourceMap;
434
424
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_OPTIONS;
435
425
  var compact = !!options.compact;
436
- var _generate = (0, _generator["default"])(ast, {
437
- comments: false,
438
- // Remove comments
439
- minified: compact
440
- // jsescOption: {
441
- // String Encoding using Babel
442
- // escapeEverything: true,
443
- // },
444
- }),
445
- code = _generate.code;
446
- return code;
426
+ var GeneratorResult = (0, _generator["default"])(ast, {
427
+ comments: false,
428
+ // Remove comments
429
+ minified: compact,
430
+ sourceMaps: !!options.sourceMap,
431
+ sourceFileName: _typeof(options.sourceMap) === "object" && ((_options$sourceMap = options.sourceMap) === null || _options$sourceMap === void 0 ? void 0 : _options$sourceMap.fileName) || "script.js"
432
+ // jsescOption: {
433
+ // String Encoding using Babel
434
+ // escapeEverything: true,
435
+ // },
436
+ });
437
+ return GeneratorResult;
447
438
  }
448
439
 
449
440
  /**
package/dist/order.js CHANGED
@@ -20,10 +20,8 @@ var Order = exports.Order = /*#__PURE__*/function (Order) {
20
20
  Order[Order["OpaquePredicates"] = 13] = "OpaquePredicates";
21
21
  Order[Order["StringSplitting"] = 16] = "StringSplitting";
22
22
  Order[Order["StringConcealing"] = 17] = "StringConcealing";
23
- Order[Order["StringCompression"] = 18] = "StringCompression";
24
23
  Order[Order["VariableMasking"] = 20] = "VariableMasking";
25
24
  Order[Order["DuplicateLiteralsRemoval"] = 22] = "DuplicateLiteralsRemoval";
26
- Order[Order["Shuffle"] = 23] = "Shuffle";
27
25
  Order[Order["ControlFlowFlattening"] = 24] = "ControlFlowFlattening";
28
26
  Order[Order["MovedDeclarations"] = 25] = "MovedDeclarations";
29
27
  Order[Order["RenameLabels"] = 27] = "RenameLabels";
package/dist/presets.js CHANGED
@@ -36,10 +36,8 @@ var highPreset = {
36
36
  opaquePredicates: 0.75,
37
37
  renameVariables: true,
38
38
  renameGlobals: true,
39
- shuffle: true,
40
39
  variableMasking: 0.75,
41
40
  stringConcealing: true,
42
- stringCompression: true,
43
41
  stringEncoding: true,
44
42
  stringSplitting: 0.75,
45
43
  astScrambler: true,
@@ -80,7 +78,6 @@ var mediumPreset = {
80
78
  objectExtraction: true,
81
79
  renameVariables: true,
82
80
  renameGlobals: true,
83
- shuffle: true,
84
81
  variableMasking: 0.5,
85
82
  stringConcealing: true,
86
83
  stringSplitting: 0.25,
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.xorDecodeString = xorDecodeString;
7
+ exports.xorDecodeStringTemplate = void 0;
8
+ exports.xorEncodeString = xorEncodeString;
9
+ var _template = _interopRequireDefault(require("./template.ts"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ function xorEncodeString(str, key) {
12
+ var result = "";
13
+ var boundedKey = (key % 95 + 95) % 95;
14
+ for (var i = 0; i < str.length; i++) {
15
+ var charCode = str.charCodeAt(i);
16
+ var normalized = charCode - 32;
17
+ var shifted = (normalized + boundedKey) % 95;
18
+ result += String.fromCharCode(shifted + 32);
19
+ }
20
+ return result;
21
+ }
22
+ function xorDecodeString(str, key) {
23
+ var result = "",
24
+ boundedKey = (key % 95 + 95) % 95;
25
+ for (var i = 0; i < str.length; i++) {
26
+ var charCode = str.charCodeAt(i);
27
+ var normalized = charCode - 32;
28
+ var shifted = (normalized - boundedKey + 95) % 95;
29
+ result += String.fromCharCode(shifted + 32);
30
+ }
31
+ return result;
32
+ }
33
+ var xorDecodeStringTemplate = exports.xorDecodeStringTemplate = new _template["default"]("function {fnName}(str, key) {\n var result = '', boundedKey = ((key % 95) + 95) % 95;\n\n for (var i = 0; i < str.length; i++) {\n var charCode = str.charCodeAt(i);\n var normalized = charCode - 32;\n var shifted = (normalized - boundedKey + 95) % 95;\n result += String.fromCharCode(shifted + 32);\n }\n\n return result;\n}");