UNPKG

vanzy-protect

Version:

Epic Obfuscator Yeahhh

133 lines (122 loc) 2.16 kB
import { cfg } from '../config/cfg' import { Randomizer } from '../random/Randomizer' const map: { [k: string]: string } = {} const _map: string[] = [] const defaults = [ 'await', 'break', 'case', 'catch', 'class', 'const', 'continue', 'debugger', 'default', 'delete', 'do', 'else', 'enum', 'export', 'extends', 'false', 'finally', 'for', 'function', 'if', 'implements', 'import', 'in', 'instanceof', 'interface', 'let', 'new', 'null', 'package', 'private', 'protected', 'public', 'return', 'super', 'switch', 'static', 'this', 'throw', 'try', 'true', 'typeof', 'var', 'void', 'while', 'with', 'yield', '__dirname', '__filename', 'clearImmediate', 'clearInterval', 'clearTimeout', 'Event', 'EventTarget', 'exports', 'global', 'MessageChannel', 'MessageEvent', 'MessagePort', 'module', 'process', 'queueMicrotask', 'setImmediate', 'setInterval', 'setTimeout', 'TextDecoder', 'TextEncoder', 'URL', 'URLSearchParams', 'WebAssembly' ] const REDO = [ 'String', 'Object', 'Number', 'JSON', 'Math', 'Date', 'console', 'Buffer' ] export function updateRedo() { if (cfg().transforms.webMode) { REDO.push('document') REDO.push('localStorage') REDO.push('window') REDO.push('fetch') } else { REDO.push('require') } } export const REDONE_PAIRS: string[][] = [] var ranDefaults = false export function addObfuscated(ogName: string, newName: string) { map[ogName] = newName _map.push(newName) } export function _obfuscateName(name: string, bfRD = false) { if (!ranDefaults && !bfRD) { // lets not obfuscate console and shit defaults.forEach(i => map[i] = i) cfg().transforms.ignore.forEach(i => map[i] = i) REDO.forEach((i) => REDONE_PAIRS.push([ i, _obfuscateName(i, true) ])) ranDefaults = true } if (map[name]) return map[name] var rs = Randomizer.INSTANCE.randIName(64) while (_map.includes(rs)) rs = Randomizer.INSTANCE.randIName(64) _map.push(rs) map[name] = rs return rs } const DEBUG_MODE = false export function obfuscateName(name: string) { const d = DEBUG_MODE ? `_obf_${name}_sus` : _obfuscateName(name) // console.log(name, d) return d }