UNPKG

vanzy-protect

Version:

Epic Obfuscator Yeahhh

86 lines (85 loc) 5.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StringToArrayExtr = void 0; const cfg_1 = require("../config/cfg"); const Randomizer_1 = require("../random/Randomizer"); const comment_1 = require("./comment"); const numberObf_1 = require("./numberObf"); const obfuscateName_1 = require("./obfuscateName"); const stringObfLvl1_1 = require("./stringObfLvl1"); class StringToArrayExtr { static init() { this.arr = []; this.fncName = Randomizer_1.Randomizer.INSTANCE.randIName(64); this.arrayName = Randomizer_1.Randomizer.INSTANCE.randIName(64); this.indexMod = ((0, cfg_1.cfg)().transforms.stringObfLevel > 1) ? Randomizer_1.Randomizer.INSTANCE.rand(-256, 256) : 0; (0, obfuscateName_1.addObfuscated)(null, this.fncName); (0, obfuscateName_1.addObfuscated)(null, this.arrayName); } static add(str) { const at = this.arr.findIndex(i => i === str); if (at >= 0) return this.createCallForIndex(at); if ((0, cfg_1.cfg)().transforms.addFakeStringsToArray) { const randoms = Randomizer_1.Randomizer.INSTANCE.rand(0, ((0, cfg_1.cfg)().transforms.stringObfLevel - 1) * 4); for (let i = 0; i < randoms; i++) this.arr.push(Randomizer_1.Randomizer.INSTANCE.randIName(Randomizer_1.Randomizer.INSTANCE.rand(1, 25), 'qwertzuiopasdfghjklyxcvbnmQWERTZUIOASDHJKLYXCVBNM7894561230.-_')); } this.arr.push(str); return this.createCallForIndex(this.arr.length - 1); } static createCallForIndex(index) { const l = (0, cfg_1.cfg)().transforms.stringObfLevel; const nl = Math.max(0, (0, cfg_1.cfg)().transforms.numberObfLevel - 1); const v = index - this.indexMod; if (l === 0 || l === 1) return `(${this.arrayName})${(0, comment_1.comment)(3)}[${(0, numberObf_1.numberObf)(v, nl)}]`; if (l === 2) return `(${this.fncName})${(0, comment_1.comment)(3)}(${(0, numberObf_1.numberObf)(Randomizer_1.Randomizer.INSTANCE.rand(-800, 800), nl)},${(0, numberObf_1.numberObf)(v, nl)})`; if (l === 3) { const xor = Randomizer_1.Randomizer.INSTANCE.rand(1, 800); return `(${this.fncName})${(0, comment_1.comment)(3)}(${(0, numberObf_1.numberObf)(xor, nl)},${(0, comment_1.comment)(2)}${(0, numberObf_1.numberObf)(v ^ xor, nl)})`; } } static generateHeader() { const l = (0, cfg_1.cfg)().transforms.stringObfLevel; if (l === 0) return (this.arr.length > 0) ? this.generateLvl1Header() : ''; if (l === 1) return this.generateLvl1Header(); if (l === 2) return this.generateLvl2Header(); if (l === 3) return this.generateLvl3Header(); } static generateLvl1Header() { const stringifiedArr = this.arr.map(i => (0, stringObfLvl1_1.stringObfLvl1)(i)).join(','); return `const ${(0, comment_1.comment)(1)}${this.arrayName}=${(0, comment_1.comment)(1)}[${(0, comment_1.comment)(2)}${stringifiedArr}${(0, comment_1.comment)(3)}];`; } static generateLvl2Header() { const stringifiedArr = this.arr.reverse().map(i => (0, stringObfLvl1_1.stringObfLvl1)(i)).join(','); const arrMax = this.arr.length - 1; const a = Randomizer_1.Randomizer.INSTANCE.randIName(64); const x = Randomizer_1.Randomizer.INSTANCE.randIName(64); return `const ${(0, comment_1.comment)(1)}${this.arrayName}=${(0, comment_1.comment)(1)}[${(0, comment_1.comment)(2)}${stringifiedArr}${(0, comment_1.comment)(3)}]; function ${(0, comment_1.comment)(1)}${this.fncName}${(0, comment_1.comment)(2)}(${Randomizer_1.Randomizer.INSTANCE.randIName(64)},${(0, comment_1.comment)(3)}${x})${(0, comment_1.comment)(2)}{ const ${(0, comment_1.comment)(2)}${a}=(${x})+(${(0, numberObf_1.numberObf)(this.indexMod)}); return${(0, comment_1.comment)(1)}(${this.arrayName}[(${(0, comment_1.comment)(2)}${(0, numberObf_1.numberObf)(arrMax)})-(${(0, comment_1.comment)(3)}${a})]); };`; } static generateLvl3Header() { const stringifiedArr = this.arr.reverse().map(i => (0, stringObfLvl1_1.stringObfLvl1)(i)).join(','); const arrMax = this.arr.length - 1; const a = Randomizer_1.Randomizer.INSTANCE.randIName(64); const b = Randomizer_1.Randomizer.INSTANCE.randIName(64); const x = Randomizer_1.Randomizer.INSTANCE.randIName(64); const y = Randomizer_1.Randomizer.INSTANCE.randIName(64); return `const ${(0, comment_1.comment)(1)}${this.arrayName}=${(0, comment_1.comment)(1)}[${(0, comment_1.comment)(2)}${stringifiedArr}${(0, comment_1.comment)(3)}]; function ${(0, comment_1.comment)(1)}${this.fncName}${(0, comment_1.comment)(2)}(${x},${(0, comment_1.comment)(3)}${y})${(0, comment_1.comment)(2)}{ const ${(0, comment_1.comment)(2)}${b}=(${y})^(${(0, comment_1.comment)(3)}${x}); const ${(0, comment_1.comment)(2)}${a}=(${b})+(${(0, numberObf_1.numberObf)(this.indexMod)}); return${(0, comment_1.comment)(1)}(${this.arrayName}[(${(0, comment_1.comment)(2)}${(0, numberObf_1.numberObf)(arrMax)})-(${(0, comment_1.comment)(3)}${a})]); };`; } } exports.StringToArrayExtr = StringToArrayExtr;