npm install --save-dev webpack-obfuscator
webpack-obfuscator git 地址
官方例子
// webpack.config.js
'use strict';
const JavaScriptObfuscator = require('webpack-obfuscator');
module.exports = {
entry: {
'abc': './test/input/index.js',
'cde': './test/input/index1.js'
},
output: {
path: 'dist',
filename: '[name].js' // output: abc.js, cde.js
},
plugins: [
new JavaScriptObfuscator({
rotateUnicodeArray: true
}, ['abc.js'])
]
};
vuecli 2.x 配置在 webpack.prod.conf.js 中
注意这里的abc.js 是排除这个文件,也就是说这个文件不混淆,其他文件混淆
新建的vuecli2.x脚手架,添加一个index,js,并构建npm run build
文件大小 117字节
function abc() {
for (let i = 0; i < 10; i++) {
console.log(`第${i}个,你好,hello`)
}
}
abc()
构建后,文件大小 177字节 (webpack默认工具为uglifyjs-webpack-plugin)
webpackJsonp([2],{lVK7:function(o,l){!function(){for(var o=0;o<10;o++)console.log("第"+o+"个,你好,hello")}()}},["lVK7"]);
new JavaScriptObfuscator({
}, [])
构建后文件,文件大小:363字节
var _0x1f6e=["个,你好,hello","lVK7","log"];!function(n,o){!function(o){for(;--o;)n.push(n.shift())}(++o)}(_0x1f6e,323);var _0x3655=function(n,o){return _0x1f6e[n-=0]};webpackJsonp([2],{lVK7:function(n,o){!function(){for(var n=0;n<10;n++)console[_0x3655("0x0")]("第"+n+_0x3655("0x1"))}()}},[_0x3655("0x2")]);
性能比没有模糊处理慢50-100%
new JavaScriptObfuscator({
compact: true,//压缩代码
controlFlowFlattening: true,//是否启用控制流扁平化(降低1.5倍的运行速度)
controlFlowFlatteningThreshold: 1,//应用概率;在较大的代码库中,建议降低此值,因为大量的控制流转换可能会增加代码的大小并降低代码的速度。
deadCodeInjection: true,//随机的死代码块(增加了混淆代码的大小)
deadCodeInjectionThreshold: 1,//死代码块的影响概率
debugProtection: true,//此选项几乎不可能使用开发者工具的控制台选项卡
debugProtectionInterval: true,//如果选中,则会在“控制台”选项卡上使用间隔强制调试模式,从而更难使用“开发人员工具”的其他功能。
disableConsoleOutput: true,//通过用空函数替换它们来禁用console.log,console.info,console.error和console.warn。这使得调试器的使用更加困难。
identifierNamesGenerator: 'hexadecimal',//标识符的混淆方式 hexadecimal(十六进制) mangled(短标识符)
log: false,
renameGlobals: false,//是否启用全局变量和函数名称的混淆
rotateStringArray: true,//通过固定和随机(在代码混淆时生成)的位置移动数组。这使得将删除的字符串的顺序与其原始位置相匹配变得更加困难。如果原始源代码不小,建议使用此选项,因为辅助函数可以引起注意。
selfDefending: true,//混淆后的代码,不能使用代码美化,同时需要配置 cpmpat:true;
stringArray: true,//删除字符串文字并将它们放在一个特殊的数组中
stringArrayEncoding: 'rc4',
stringArrayThreshold: 1,
transformObjectKeys: true,
unicodeEscapeSequence: false//允许启用/禁用字符串转换为unicode转义序列。Unicode转义序列大大增加了代码大小,并且可以轻松地将字符串恢复为原始视图。建议仅对小型源代码启用此选项。
}, []),
构建后文件,文件大小: 29,999 字节(29.2 KB)
var _0xa0d1=["w7Bzw6oKw6E=","wrwIUcOVw4M=","w4bChi3DtcOQ","wpLDtsK5w4LDpA==","OUlQwp1z","woEqw4XCtsOe","YR3DrkDCiA==","woAjwq/Ci8KQ","dDNzw5bDgA==","VcK8HCM=","JMO3C8K7Zg==","BsK6w7zCkg==","YsOlw71Qwos=","asO/wrPCkBnDmcKhN8Kkw65l","w6fDuwc5bg==","dzLDh1XCog==","OsOEw4dcw78=","WTLDlmbCpQ==","wqN8wr9lew==","w4jDlWXCsMKo","fhR6NsKj","wro4woTCvMKY","wrETRMO0w5g=","O2Jrwrx9","wrw3emE9","wpd5esOnwrs=","wpQtZU0j","wqrChMOMVMOq","ZSfDnUjCpQ==","w6LDgyZdeg==","B37Dh8O7YA==","woZTwrxFQg==","wqnCtMObZcOv","bsK5woDCtMKM","fMK/OTdP","UxN+w5TDtw==","ScOIwp7CihE=","wrMaZ3cS","fcOlwrvCnnQ=","wrYAw5vCg8OU","w4nChTHDjMOR","AmjDp8ObYw==","PkhNw5PDiw==","wqXCocOIU8O0","wo4Tw6rCuMOn","wqIJSsO6w7Q=","LB0Xw7Z1","OsOvwqk2GQ==","K8Okw5p2NA==","acKOwpLCs8Kn","J8KHZMO2IA==","w4vCgzDDl8Of","w4hbw4MLw4A=","HifCjgJO","HDjCkB1DwrzDiG/CjkEO","w6RAw7Epw60=","bi7DqkHChA==","w5tTw7kKw4E=","wq9PBghW","FMO8wok6BQ==","PDABwpls","EsOCw7NDZQ==","wqPDscKVw6fDnA==","bMKIwrvCtMKo","5LuoWeS/leWlgQtXwoV0RQM=","w79KwqXCr0g=","KR0ew7hQFcOUwqLCq8Ozw7zCvsKbwrXClw8=","CjLCmiFe","P8OVacKxZcKDw6J1UsO8e8OYPjggCnoyS8OdOMKcwrLDjCIcwrjDuSnChzt5QDV7w4w8NMKTwpPDv0jCjmfChcOmw4nDoMK8wrzCqVluZcK3WcO0w4wGwqPDh8OG","XhtQw6DDvQ==","fcO/wqTCgBk=","RTrDvkY=","M2VUwp14","LAARw7JK","woIyaxnCvw==","wpIvUwnCtA==","w5YmKjfClw==","w5/DlUzCn8KX","wr5+JBFq","AMO6w6NPw5k=","wovDisKkw7jDjA==","FcOTw4Ndw7o=","IMKVQj7CiA==","w6kODDDCjA==","dMOgwpnCqj4=","MX5UwqR6","wpE/XBjCkA==","cMKEw5nChX5vw6IQRHnDg8Kiw4/DpHAvfiBl","UcOOwqPCoBM=","Mno0wo1Ww4zDk8OOGcOzJ8OawrZXw5vDlQ7DvcO4Dm15w6AeKMK8wrIzJsKwwrU+","O8Odw45XTg==","MMOFw5FvcQ==","esKtZCo3","Z8K1wpzCicOC","EBY9w58Y","RsKUwqfCuMK1","wozCgcODK2A=","woMFeR7Cog==","SMKTHT9L","w5VVw4B3OhNQw69lwo7CgCtUOMOcwrY1","DcKGQsOTHA==","eA3Dq3vCijcOw6nCoGkTSyV4wpU=","JmNvwopB","w7Jsw68Iw6xXwq0=","wo8Bwq3Cl8KI","wrwEUHw9","BcOiw6RebQ==","RsKee8KKw7U=","J8ORw6B6w6I=","woEyw7p5fw==","woPCl8O6UsOq","wpRsGTxl","MUZ0w6PDrQ==","U8KCBsOmc8OVw742WcOfecOcIw==","w4HCgyzDpcOS","fyzDvl3Cpw==","wozChsOaHE4=","Pykiw65h","wrLDlMKCw7LDnw==","FEJTw5jDkQ==","PMOOw4DCtsO5","MDACwpZK","wqgSw49JdQ==","ZMOgw6Nwwq0=","Ii42wqlb","A8Oew5hSGg==","JlpFw4jDow==","wqAcWMOSw4I=","YsKjScK2w4c=","wqvCrMO8","BcOzA8KvdQ==","w74BPBTCkQ==","WsKXaC8N","AcO6w51gw4c=","I8O/w4HCs8O7","DkXDm8OrZQ==","wpjCi8OEWMO5","ccKhVMKDw5o=","GTHCljZc","w4rDtH3CuMKc","wocuSD8=","TizDpEHCnQ==","NQo+w6hl","w4ZawpLCuVw=","RMK+wqXCn8OR","wq0owp3ChsKw","eMOew699woE=","XcK2GQ==","d8OlwqfCrHk=","B0nDosOQQQ==","AcK3eQ3CsA==","wp4Nw4XCrcOi","wow3w6zCncOjJ00=","woVvTsOKwr4=","QsOsw45ZwqU=","wqBzwrNNTg==","Bi00w4sgeQA=","C2hLwrpN","JcOCw7Vrw78=","G8OUw4p9w6w=","w6PCoQ3DmsOi","e8Krw47CmUU=","QsKpEj92","WMKRQC8=","w6nDnzNaSw==","FMKfR8O0","LsKXWj7CvQ==","JMOkw7Nvw40=","EsOxwo0yJBfChiUQ","FcOkw7Y=","woFGwpZ4fB0Rw7Ahwp3Dgw==","KlZVw5LDuQ==","woPDiMKDw53Dlw==","XsKbUyQ5","wrQkeV4v","HB0pw5VP","SMKxwobCk8O0","w5HDmws7QQ==","TMOOwrjCtXM=","LRwXw4hn","AsK3SQ/CtQ==","w7nDhRdNdA==","wpwow67Ch8O4","wrPCjcONb8OuVzk=","wq1PcQ==","HsOvH8KkXsK6Ww==","w5o6KC3CkQ==","woHDl8Kdw4LDgcKTCA==","wo0hSsOzw51oBMK8w4k=","esOkwrzClxPDusKm","w57Dgzcf","GMOIw7hrNsKqUg==","EsOJw7B3","w6HCvhPDhcO0w4bCqw==","RcKrHzVn","VcK8HCNl","wrwNw7XCusOt","wrDCrUzDisKsw5bDuFPCm8OQAsOmDDvDvcOdBA==","w7vCuSjDgsOK","XsONw6ZHwoo=","wonDk8OaIyQ=","w4/DhgszdA==","w4Bmw7Q3w7I=","wo7DpsOiPhI=","O8KIcgPCiw==","w65lwpXCj3o=","bsKAwqPClsO9","5Liuw6jkvZDlprHCn8O9bcKjw53CqQ==","w7hMIiHDhA==","wpvDkMKmw4XDvw==","LMOhw5hhPA==","w4ZFw5Qfw70=","w4/DsHvCsMKA","Ikpsw5nDlg==","wpbCpsO1C04=","ZsK2W8Kfw5Y=","w5VRwqnCuFU=","w6wdLRbCgg==","w53DsGfCtcKN","w4vDsnnCs8KL","D8KRUg==","w4zDmiYUckpkw7g8","wpZbwplobQ==","LWJ4wpte","c8KlQsKi","bsKOwpPCtA==","a8KPwpI=","wpszw6JYbQ==","w5vClyrDksOR","BDIew5Bv","woYgbzrCpw==","wo5/wrM8","w7tlHRvDsg==","NcOOw7NSKw==","WcONwrRHFwjCi0pvdCDCs8Oz","ScKnZsK/w7A=","d8OlwoHCml8=","DMOGw6vCscOS","CsOwKcKgRQ==","PCUIw6o6","H8OUw4dKSw==","UcKGw6rCuWQ=","OcKZawDCiw==","w6XClirDscO9","FMOvOsKSYw==","Hh4mw5V2","Six8w57Dhg==","dcKFwoHCrsKWwrYLworCoMO8wrLDkyrDgGfCjVDDu0M=","LgIzwotu","GMKDG8O5KsOHwrk+GsOWKMOUeXUyc2l6WcKYZ8OLw4/CkTFBw6fDrX3DkzNv","B8OhwrcwOQ==","asKjwoTCn8Om","wrTCqsOTWcOC","YcObwpHCq1I=","DBvCtwVC","BMO9wpw+OgQ=","FcOiw6XCqcO5","R8K0Px5V","dMKxV8Kvw6M=","wrdIXcOKwp4=","LcOMBcKWYQ==","woQjUifCtkoCEcOGRsOQw7Mjw4zCrg==","G17DocOOYw==","asOkw51QwpvDvhQ=","wq8hYMOww48=","w5bDum/CucK2","wpItw5h/SA==","IVnDpsOxfw==","UcOswr7CszQ=","woA2fcOQw4k=","bhPDnFrCuw==","DcK4w7fCh8OYWw==","NsKVw73CqMO+","QBZ3w5XDug==","wqnCtsOeKWI=","wr0qwqzCpsKh","U8KtwoXCnMKG","XMODwpzClS4=","PcOkwog0Gw==","UMOSwpTCig==","H8OzIcK9Wg==","w6vDiiRH","DsKKfsOKAQ==","UMK6Cj9twok=","JsKNw5fCpcOO","wqnDn8OPHS0=","wrjDksKmw7jDtw==","RTNqFcK2","woo9w69Rbg==","w4jDmGTClsKQ","J0B8wold","CsO/w7DCk8OOwpZBw5nCusOrw5U=","TsKFwoXCocKI","wroFwqzClcKQ","RjPDoVjCqw==","5Lm+HeS/q+WnghkPwpUwPRI=","w5waEAHCpQ==","PMO0w6VUNw==","w4HDi0fCvsK3","wofCjMO1RsOx","w6Frw64Lw5E=","eMOVwofCrko=","TsKXw6bCqkY=","ZRDDqU7CtQ==","ZMKXw77CqG8=","wq01w5DCucOf","ZsOvwpTCilk=","KcOrK8KTeQ==","STJwIcK9","w4YiKDbChA==","BwMdw4hj","EQE5wrVL","wqcswrLCvMKe","RMOow75Nwqw=","wpLDkMKqw5bDgw==","wqPCi8OrH2c=","J1rDmMO0ZA==","N2Jrw7DDlQ==","wqU6f8Olw64=","KEdWw5XDsg==","wrs7wpLCvcKL","bArDrGTCm2VTw77CpnME","K8Orw6JZCQ==","McOmw6Jgw5E=","Ki0ww4kZ","MG1owppe","w79Iwq/CuHc=","AsKZVRjCnQ==","AcKkeR3CiQ==","DcK/w57CgsOp","esOgw7t1wr4=","woUNw7xaRQ==","OsOpw6x4Tg==","wpkaw6nCpcOO","w4TDii1icQ==","NDQMw7Yd","woc3w5bCqMOo","KMO2w4pTSQ==","Y8O/wpLCt2I=","MWxVwoNV","wqA+RcOBw6U=","FcOSw5NrHw==","TcOGwqLCox4=","wq4CXnUi","ZwNoFcKZ","TDfDtXLCgA==","wqfCksO7a8O1","wrY5w6rCgMOZ","VsKqwqHCtMOC","wqghwpvCrcK0DQQ=","CsKQU8O1","GsOkw7/ClMOEwrVG","TxhdA8Kqwq/CosOUHg==","UsK2ECVtwovDjQ==","EzjCmQ==","ZMKPwpvCqMKLwrRO","exfDo3TCig==","w65IGCPDnxXCsA==","wpVIwopl","w4rDjSsCbVJo","Y8KFwpfCrsKD","asOkw4ZNwpvDqRPCmALCmlw=","wpBWQMONwr8=","U8OmwrTChzM=","w69UJjrDmw==","wqJBesOv","wpoXfUsz","IhIUw70t","w5RIw5wWw4I=","a8KXZMK/w58=","DsOCw5BpMw==","w53DqzAbTQ==","SxZrw7PDhw==","I2l1w5zDhg==","PU5vwoR2","wq1QGBdbwoIYdsK5FsKG","w6rDtS5/UA==","woRSEAdg","YMKSw73Cmmc=","ZsKQwoXCt8Kd","wqnChMO9PUA=","JcOzw5R9w4I=","wo4JRG8Q","wqc/w67CucOE","w4rDsA8yRA==","w5ADFiDCrQ==","ecOjw5xTwqY=","w4DDjzBkQw==","T8KvwqbChMOs","KcKdVjjCrsKtTz19w59p","wqvDncKDw4vDgg==","AMKfXijClQ==","K3RKwoRS","wpAqVyc=","woUtYsOGw6k=","wpzDvMO9AD4=","wqo0e8OBw74=","bBZiw7zDng==","ccKhdsK9w5k=","wpnDjcOoHxs=","w7c4HAvCmQ==","BcKSw6jCgsOW","XzlfFMK2","OF7DrA==","Eic+wqpi","ecKpOB94","wqpwBwZV","V8Kjd8KFw5s=","woHDsMOuOSM=","VRlfw6zDgg==","dcKvw4/CtnY=","MkTDpcOcQQ7CnzJxV2/Dk8O2MhXCiQ==","wpo6U8Omw4Y=","FSxGw4UZwojCiMKFUcOZdMOWw7Eaw4nCrB3CtcOqSzIuwp1DO8Ohw60ncsOkwr0ow4ppw7HChFgNwpHCi8OyAcOxwrLDplPCjhbCgMKycsKOwrEHPWUnEcOjAcKvJw==","wrvCu8OJTcOG","G8KxcQ/CjA==","wqIgwpzCqg==","wrnDmsOdPzE=","wqNZwpF5Ww==","J0ZDw7LDjg==","wroDQsO1w4E=","w6RJBiXDhA==","w7JOw5gww5E=","MsKdbzLClw==","QcOhwobCsFE=","VcK1w5zCkVg=","d8KWwp3CssOU","wppyPRB3","w7p2wpXCpkA=","wqYvw4dpaw==","T8O4wrfCgTU=","J8KoQcOxAw==","wpnCq8O1bcOx","K8OEw7JBCw==","VgHDg0TCqw==","RsORw5JPwq4=","c8OzwoDCvDY=","Nik+w50k","w5TDlV/CqsKB","LsKHw6PCkcOt","wqcDU8Onw6w=","S8KawpDCnMKd","wr/Dp8ODNyY=","LsOZw7TCgsOz","aMKMMxll","wpvDocO8BiY=","DS0Vw486","wptIwpFbTA==","wrvDocK/w7vDqA==","GcOvwosvGw==","woYdSwTCsg==","ZsKrVyEV","fi11EsKC","AMKtw6nCjMOV","TStIw7fDtw==","XCdKw63Dmg==","FMOAw6Znw64=","KsOgw7XCgsOA","acKgwqjCmsOP","LsOzO8KNYA==","DQUdwoZA","IMOew5zCqMOM","TBhLw4w=","PcKHTSDCiw==","IsKddzzCrw==","HsOUw7JP","wpXDjcKGw5rDvw==","BMOhGMKHdQ==","wpIXwrnClMKd","F8Otw7TCn8Ok","BDIqw5Q2","w49two3CkVg=","NcO0w4tdw6s=","w6jDviRSWA==","w5VUJiDDig==","wqMvw5xPRg==","a8KZwr7Cp8O1","BcKLW8O5McOAwqUkSMKJF8KINi1GeA==","w6F9PRrDlQ==","PcO2w4XDi8KMGcK0wp08S8OvES9QwoMpRsOlE8OuVMOdQD9bw4vCkRxXw581wqt6aHtjw4kVw58NYcONIFvDhcK8w5/Cp0/CnRLDqMKWSWDDogJZw4LCjsKZWw==","w73Dsz0ybA==","woBwHCBF","DCwzw4w=","woQYUg/Cqw==","GsOKw5vCn8Ox","wqEdw5RVSQ==","EFfDisOIUg==","IGlqwptN","asK1ScKEw6A=","w5J0wpHCr14=","wrPCm8OPbcOL","w4/DqR8mZw==","w7N0wpLCqHs=","w7LCnzfDhcOR","fTp9MMK3","w6LDnwZtaw==","wooOw4PClMOo","MWfDisOFUQ==","ScKXMSxq","GjXCpz90","w69QwpLCm0o=","w4jDkjUdew==","ScKjwobCocKn","JsKocwHCvw==","wpYkw41/SQ==","wqzDt8KZw7XDhA==","wpZMwot/","RsKsTwQ5","wo/DlcODFS0=","dsKEw57ChA==","CsOTGMKTSQ==","XcOtwpPCkxs=","wrZxOR5H","RBFHLsKJ","woFQwpR6Qg=="];!function(x,e){var w=function(e){for(;--e;)x.push(x.shift())};!function(){var x={data:{key:"cookie",value:"timeout"},setCookie:function(x,e,w,n){n=n||{};for(var _=e+"="+w,r=0,c=(r=0,x.length);r<c;r++){var t=x[r];_+="; "+t;var o=x[t];x.push(o),c=x.length,!0!==o&&(_+="="+o)}n.cookie=_},removeCookie:function(){return"dev"},getCookie:function(x,e){var n,_=(x=x||function(x){return x})(new RegExp("(?:^|; )"+e.replace(/([.$?*|{}()[]\/+^])/g,"$1")+"=([^;]*)"));return n=410,w(++n),_?decodeURIComponent(_[1]):void 0}};x.updateCookie=function(){return new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(x.removeCookie.toString())};var e=x.updateCookie();e?e?x.getCookie(null,"counter"):x.removeCookie():x.setCookie(["*"],"counter",1)}()}(_0xa0d1);var _0x34e6=function(x,e){var w,n=_0xa0d1[x-=0];if(void 0===_0x34e6.oeeUQN){(w=function(){var x;try{x=Function('return (function() {}.constructor("return this")( ));')()}catch(e){x=window}return x}()).atob||(w.atob=function(x){for(var e,w,n=String(x).replace(/=+$/,""),_=0,r=0,c="";w=n.charAt(r++);~w&&(e=_%4?64*e+w:w,_++%4)?c+=String.fromCharCode(255&e>>(-2*_&6)):0)w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(w);return c});_0x34e6.CspWeK=function(x,e){for(var w,n=[],_=0,r="",c="",t=0,o=(x=atob(x)).length;t<o;t++)c+="%"+("00"+x.charCodeAt(t).toString(16)).slice(-2);x=decodeURIComponent(c);for(var u=0;u<256;u++)n[u]=u;for(u=0;u<256;u++)_=(_+n[u]+e.charCodeAt(u%e.length))%256,w=n[u],n[u]=n[_],n[_]=w;u=0,_=0;for(var f=0;f<x.length;f++)_=(_+n[u=(u+1)%256])%256,w=n[u],n[u]=n[_],n[_]=w,r+=String.fromCharCode(x.charCodeAt(f)^n[(n[u]+n[_])%256]);return r},_0x34e6.WznujJ={},_0x34e6.oeeUQN=!0}var _=_0x34e6.WznujJ[x];if(void 0===_){if(void 0===_0x34e6.gVFMPP){var r=function(x){this.wQnOGf=x,this.oBwmro=[1,0,0],this.lpxwrg=function(){return"newState"},this.DcpgKF="\\w+ *\\(\\) *{\\w+ *",this.AKLFzO="['|\"].+['|\"];? *}"};r.prototype.yEszEb=function(){var x=new RegExp(this.DcpgKF+this.AKLFzO).test(this.lpxwrg.toString())?--this.oBwmro[1]:--this.oBwmro[0];return this.JPYomF(x)},r.prototype.JPYomF=function(x){return Boolean(~x)?this.XsRsEp(this.wQnOGf):x},r.prototype.XsRsEp=function(x){for(var e=0,w=this.oBwmro.length;e<w;e++)this.oBwmro.push(Math.round(Math.random())),w=this.oBwmro.length;return x(this.oBwmro[0])},new r(_0x34e6).yEszEb(),_0x34e6.gVFMPP=!0}n=_0x34e6.CspWeK(n,e),_0x34e6.WznujJ[x]=n}else n=_;return n},_0x1a25ad=function(){var x=!0;return function(e,w){var n=x?function(){if(w){var x=w.apply(e,arguments);return w=null,x}}:function(){};return x=!1,n}}(),_0x3a4fc4=_0x1a25ad(this,function(){var x=function(x){x.indexOf(!1)&&e(x)},e=function(e){3!==e.indexOf((!0+"")[3])&&x(e)};new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(function(){return"dev"}.toString())&&new RegExp("(\\\\[x|u](\\w){2,4})+").test(function(){return"window"}.toString())?x("indexOf"):x("indеxOf")});_0x3a4fc4();var _0x154852=function(){var x={};x[_0x34e6("0x0","KHj7")]=_0x34e6("0x1","hVB*"),x[_0x34e6("0x2","(Eu(")]=_0x34e6("0x3","oL82"),x[_0x34e6("0x4","NF]5")]=function(x,e){return x(e)},x[_0x34e6("0x5","OA3G")]=_0x34e6("0x6","I@r*"),x[_0x34e6("0x7","xatR")]=function(x,e){return x+e},x[_0x34e6("0x8","AFtM")]=_0x34e6("0x9","WqJj"),x[_0x34e6("0xa","(Eu(")]=_0x34e6("0xb","lGMk"),x[_0x34e6("0xc","Z5Oa")]=function(x,e){return x(e)},x[_0x34e6("0xd","OA3G")]=function(x){return x()},x[_0x34e6("0xe","Dg#&")]=function(x,e){return x===e},x[_0x34e6("0xf","KHj7")]=_0x34e6("0x10","ubRE"),x[_0x34e6("0x11","(v0J")]=_0x34e6("0x12","3xxX"),x[_0x34e6("0x13","$Cun")]=_0x34e6("0x14","iseQ"),x[_0x34e6("0x15","4N^Z")]=_0x34e6("0x16","NF]5"),x[_0x34e6("0x17","ZQ67")]=function(x,e,w){return x(e,w)},x[_0x34e6("0x18","9LM[")]=function(x,e){return x===e},x[_0x34e6("0x19","u$xZ")]=_0x34e6("0x1a","iseQ");var e=!0;return function(w,n){var _={};if(_[_0x34e6("0x1b","RHB)")]=function(e,w,n){return x.PcdYR(e,w,n)},x[_0x34e6("0x1c","@&JF")](x[_0x34e6("0x1d","GJh&")],x[_0x34e6("0x1e","(Eu(")])){var r=e?function(){var e={};if(e[_0x34e6("0x1f","*oRG")]=x.wNbFz,e[_0x34e6("0x20","xatR")]=x.rczpk,e[_0x34e6("0x21","M2YI")]=function(e,w){return x.kYjQG(e,w)},e[_0x34e6("0x22","JrfC")]=x.QCIDV,e[_0x34e6("0x23","xatR")]=function(e,w){return x.UNTRF(e,w)},e[_0x34e6("0x24","RHB)")]=x.ApirS,e[_0x34e6("0x25","AFtM")]=x.RZkcl,e[_0x34e6("0x26","uEgh")]=function(e,w){return x.cMBVI(e,w)},e[_0x34e6("0x27","B@V(")]=function(e){return x.xoWyM(e)},x[_0x34e6("0x28","*X**")](x[_0x34e6("0x29","9ssU")],x[_0x34e6("0x2a","y^wI")])){var r=n[_0x34e6("0x2b","GJh&")](w,arguments);return n=null,r}if(n){if(!x[_0x34e6("0x2c","vdcx")](x[_0x34e6("0x2d","vdcx")],x[_0x34e6("0x2e","!4Gw")])){var c=n[_0x34e6("0x3c","RHB)")](w,arguments);return n=null,c}_[_0x34e6("0x2f","M2YI")](_0x154852,this,function(){var x=new RegExp(e[_0x34e6("0x30","ubRE")]),w=new RegExp(e[_0x34e6("0x31","XauR")],"i"),n=e[_0x34e6("0x32","WeSU")](_0x2c01f8,e[_0x34e6("0x33","M2YI")]);x[_0x34e6("0x34","vdcx")](e[_0x34e6("0x35","OA3G")](n,e[_0x34e6("0x36","OA3G")]))&&w[_0x34e6("0x37","wazq")](e[_0x34e6("0x38","uEgh")](n,e[_0x34e6("0x39","XauR")]))?e[_0x34e6("0x3b","M2YI")](_0x2c01f8):e[_0x34e6("0x3a","I@r*")](n,"0")})()}}:function(){};return e=!1,r}return!0}}();!function(){var x={};x[_0x34e6("0x3d","3xxX")]=function(x,e){return x===e},x[_0x34e6("0x3e","!4Gw")]=_0x34e6("0x3f","Tlng"),x[_0x34e6("0x40","lGMk")]=_0x34e6("0x41","$Cun"),x[_0x34e6("0x42","ubRE")]=_0x34e6("0x43","4N^Z"),x[_0x34e6("0x44","lGMk")]=_0x34e6("0x45","GJh&"),x[_0x34e6("0x46","^rUh")]=function(x,e){return x(e)},x[_0x34e6("0x47","(v0J")]=_0x34e6("0x48","RHB)"),x[_0x34e6("0x49","*X**")]=function(x,e){return x+e},x[_0x34e6("0x4a","M2YI")]=_0x34e6("0x4b","$Cun"),x[_0x34e6("0x4c","hVB*")]=_0x34e6("0x4d","oL82"),x[_0x34e6("0x4e","AjtX")]=_0x34e6("0x4f","3xxX"),x[_0x34e6("0x50","NF]5")]=_0x34e6("0x51","^rUh"),x[_0x34e6("0x52","3xxX")]=function(x,e){return x===e},x[_0x34e6("0x53","vMMt")]=_0x34e6("0x54","y^wI"),x[_0x34e6("0x55","Tlng")]=function(x){return x()},x[_0x34e6("0x56","4%BA")]=function(x,e,w){return x(e,w)},x[_0x34e6("0x57","hVB*")](_0x154852,this,function(){if(x[_0x34e6("0x58","JrfC")](x[_0x34e6("0x59","i@xP")],x[_0x34e6("0x5a","3xxX")])){var e=fn[_0x34e6("0x5b","^rUh")](context,arguments);return fn=null,e}var w=new RegExp(x[_0x34e6("0x5c","*oRG")]),n=new RegExp(x[_0x34e6("0x5d","OA3G")],"i"),_=x[_0x34e6("0x5e","$Cun")](_0x2c01f8,x[_0x34e6("0x5f","uEgh")]);if(w[_0x34e6("0x60","AFtM")](x[_0x34e6("0x61","9ssU")](_,x[_0x34e6("0x62","xatR")]))&&n[_0x34e6("0x63","KHj7")](x[_0x34e6("0x64","XauR")](_,x[_0x34e6("0x65","iseQ")]))){if(!x[_0x34e6("0x6b","vMMt")](x[_0x34e6("0x6c","uEgh")],x[_0x34e6("0x6d","oL82")]))return debuggerProtection;x[_0x34e6("0x6e","4%BA")](_0x2c01f8)}else if(x[_0x34e6("0x66","(v0J")](x[_0x34e6("0x67","y^wI")],x[_0x34e6("0x68","AFtM")])){if(fn){var r=fn[_0x34e6("0x69","Z5Oa")](context,arguments);return fn=null,r}}else x[_0x34e6("0x6a","(Eu(")](_,"0")})()}();var _0x185cff=function(){var x={};x[_0x34e6("0x6f",")!o&")]=function(x){return x()},x[_0x34e6("0x70","I@r*")]=function(x,e){return x+e},x[_0x34e6("0x71","vdcx")]=_0x34e6("0x72","JrfC"),x[_0x34e6("0x73","XauR")]=_0x34e6("0x74","GJh&"),x[_0x34e6("0x75","u$xZ")]=_0x34e6("0x76","iseQ"),x[_0x34e6("0x77","^rUh")]=function(x,e){return x===e},x[_0x34e6("0x78",")!o&")]=_0x34e6("0x79","!4Gw"),x[_0x34e6("0x7a","9LM[")]=_0x34e6("0x7b","AFtM"),x[_0x34e6("0x7c","@&JF")]=function(x,e){return x!==e},x[_0x34e6("0x7d","y^wI")]=_0x34e6("0x7e","I@r*"),x[_0x34e6("0x7f","(Eu(")]=_0x34e6("0x80","oL82"),x[_0x34e6("0x81","(J4j")]=function(x,e){return x===e},x[_0x34e6("0x82","(P1Y")]=_0x34e6("0x83","(J4j"),x[_0x34e6("0x84","NF]5")]=_0x34e6("0x85","9LM[");var e=!0;return function(w,n){var _={};if(_[_0x34e6("0x86","Tlng")]=function(e){return x.nxlWg(e)},_[_0x34e6("0x87","hVB*")]=function(e,w){return x.KmZUK(e,w)},_[_0x34e6("0x88","AFtM")]=x.LNKnV,_[_0x34e6("0x89","NF]5")]=x.YwzlW,_[_0x34e6("0x8a","*oRG")]=x.knUnd,_[_0x34e6("0x8b","JrfC")]=function(e,w){return x.NYBHl(e,w)},_[_0x34e6("0x8c","vdcx")]=x.xWEBM,_[_0x34e6("0x8d","iseQ")]=x.ufATv,_[_0x34e6("0x8e","(J4j")]=function(e,w){return x.fUnlQ(e,w)},_[_0x34e6("0x8f","Dg#&")]=x.TtDPy,_[_0x34e6("0x90","4%BA")]=x.YJmbu,!x[_0x34e6("0x91","vMMt")](x[_0x34e6("0x92","hVB*")],x[_0x34e6("0x93","WqJj")])){var r=e?function(){var x={};if(x[_0x34e6("0x94","NF]5")]=function(x,e){return _.SOLDU(x,e)},x[_0x34e6("0x95","4%BA")]=_.dzDNJ,x[_0x34e6("0x96","(Eu(")]=_.yVxyn,x[_0x34e6("0x97","8b%8")]=_.iYuoh,_[_0x34e6("0x98","B@V(")](_[_0x34e6("0x8c","vdcx")],_[_0x34e6("0x99","ZQ67")]))_[_0x34e6("0x9a","*oRG")](_0x2c01f8);else if(n){if(_[_0x34e6("0x9b","4N^Z")](_[_0x34e6("0x9c","vMMt")],_[_0x34e6("0x9d","Z5Oa")])){var e=n[_0x34e6("0x9e","i@xP")](w,arguments);return n=null,e}(function(){return!1})[_0x34e6("0x9f","i@xP")](x[_0x34e6("0xa0","Z5Oa")](x[_0x34e6("0xa1",")!o&")],x[_0x34e6("0xa2","Z5Oa")]))[_0x34e6("0xa3","(v0J")](x[_0x34e6("0xa4","B@V(")])}}:function(){};return e=!1,r}globalObject=window}}(),_0x2acc39=_0x185cff(this,function(){var x={};x[_0x34e6("0xa5","WeSU")]=function(x,e){return x<e},x[_0x34e6("0xa6","wazq")]=function(x,e){return x+e},x[_0x34e6("0xa7","uEgh")]=function(x,e){return x+e},x[_0x34e6("0xa8","*oRG")]=_0x34e6("0xa9","$Cun"),x[_0x34e6("0xaa","3xxX")]=_0x34e6("0xab","8b%8"),x[_0x34e6("0xac","i@xP")]=_0x34e6("0xad","4N^Z"),x[_0x34e6("0xae","vdcx")]=function(x,e){return x(e)},x[_0x34e6("0xaf","iseQ")]=_0x34e6("0xb0","9LM["),x[_0x34e6("0xb1","oL82")]=_0x34e6("0xb2","8b%8"),x[_0x34e6("0xb3","*X**")]=function(x,e){return x+e},x[_0x34e6("0xb4","*X**")]=_0x34e6("0xb5","IXle"),x[_0x34e6("0xb6","@&JF")]=function(x){return x()},x[_0x34e6("0xb7","(v0J")]=function(x,e){return x===e},x[_0x34e6("0xb8","!4Gw")]=_0x34e6("0xb9","uEgh"),x[_0x34e6("0xba","!4Gw")]=function(x,e){return x===e},x[_0x34e6("0xbb","OA3G")]=_0x34e6("0xbc","IXle"),x[_0x34e6("0xbd","iseQ")]=function(x,e){return x(e)},x[_0x34e6("0xbe","oL82")]=function(x,e){return x+e},x[_0x34e6("0xbf","*X**")]=_0x34e6("0xc0","KHj7"),x[_0x34e6("0xc1","iseQ")]=_0x34e6("0xc2","oL82"),x[_0x34e6("0xc3","wazq")]=function(x,e){return x!==e},x[_0x34e6("0xc4","wazq")]=_0x34e6("0xc5","9ssU"),x[_0x34e6("0xc6","ubRE")]=function(x,e){return x===e},x[_0x34e6("0xc7","RHB)")]=_0x34e6("0xc8","*oRG"),x[_0x34e6("0xc9","VmNg")]=_0x34e6("0xca","*X**"),x[_0x34e6("0xcb","JrfC")]=_0x34e6("0xcc","AFtM"),x[_0x34e6("0xcd","4N^Z")]=_0x34e6("0xce",")!o&"),x[_0x34e6("0xcf","oL82")]=_0x34e6("0xd0","Z5Oa"),x[_0x34e6("0xd1","I@r*")]=function(x,e){return x!==e},x[_0x34e6("0xd2","(J4j")]=_0x34e6("0xd3","wazq"),x[_0x34e6("0xd4","AjtX")]=_0x34e6("0xd5","!4Gw"),x[_0x34e6("0xd6","$Cun")]=function(x,e){return x!==e},x[_0x34e6("0xd7","NF]5")]=_0x34e6("0xd8","(v0J"),x[_0x34e6("0xd9","WqJj")]=_0x34e6("0xda","4N^Z");var e=function(){},w=x[_0x34e6("0x100","4%BA")](function(){var e={};if(e[_0x34e6("0xdb","vMMt")]=function(e,w){return x.qyPRl(e,w)},e[_0x34e6("0xdc","9LM[")]=function(e,w){return x.qyPRl(e,w)},e[_0x34e6("0xdd","VmNg")]=x.khNoL,x[_0x34e6("0xde","8b%8")](x[_0x34e6("0xdf","uEgh")],x[_0x34e6("0xe0","WqJj")])){var w;try{if(x[_0x34e6("0xe1","M2YI")](x[_0x34e6("0xe2","WeSU")],x[_0x34e6("0xe3","$Cun")]))w=x[_0x34e6("0xe4","u$xZ")](Function,x[_0x34e6("0xe5","WeSU")](x[_0x34e6("0xe6","ZQ67")](x[_0x34e6("0xe7","WqJj")],x[_0x34e6("0xe8","(Eu(")]),");"))();else for(var n=0;x[_0x34e6("0xe9","AjtX")](n,10);n++)console[_0x34e6("0xea","VmNg")](x[_0x34e6("0xeb","XauR")](x[_0x34e6("0xec","IXle")]("第",n),x[_0x34e6("0xed","9ssU")]))}catch(e){if(x[_0x34e6("0xee","!4Gw")](x[_0x34e6("0xef","M2YI")],x[_0x34e6("0xf0","hVB*")])){var _=new RegExp(x[_0x34e6("0xf1","NF]5")]),r=new RegExp(x[_0x34e6("0xf2","AjtX")],"i"),c=x[_0x34e6("0xf3","i@xP")](_0x2c01f8,x[_0x34e6("0xf4","@&JF")]);_[_0x34e6("0xf5","*X**")](x[_0x34e6("0xf6",")!o&")](c,x[_0x34e6("0xf7","8b%8")]))&&r[_0x34e6("0x34","vdcx")](x[_0x34e6("0xf8","3xxX")](c,x[_0x34e6("0xf9","ubRE")]))?x[_0x34e6("0xfb","u$xZ")](_0x2c01f8):x[_0x34e6("0xfa","I@r*")](c,"0")}else w=window}return w}console[_0x34e6("0xfc","JrfC")](e[_0x34e6("0xfd","Dg#&")](e[_0x34e6("0xfe","hVB*")]("第",i),e[_0x34e6("0xff","OA3G")]))});if(w[_0x34e6("0x101","4%BA")]){if(x[_0x34e6("0x117","(J4j")](x[_0x34e6("0xd7","NF]5")],x[_0x34e6("0x118","8b%8")])){var n;try{n=x[_0x34e6("0x119","ubRE")](Function,x[_0x34e6("0x11a","^rUh")](x[_0x34e6("0x11b","Dg#&")](x[_0x34e6("0x11c","8b%8")],x[_0x34e6("0x11d","OA3G")]),");"))()}catch(x){n=window}return n}for(var _=x[_0x34e6("0x11e","Tlng")][_0x34e6("0x11f","4%BA")]("|"),r=0;;){switch(_[r++]){case"0":w[_0x34e6("0x120","NF]5")][_0x34e6("0x121","(P1Y")]=e;continue;case"1":w[_0x34e6("0x122","XauR")][_0x34e6("0x123","IXle")]=e;continue;case"2":w[_0x34e6("0x124","uEgh")][_0x34e6("0x125","(Eu(")]=e;continue;case"3":w[_0x34e6("0x126","iseQ")][_0x34e6("0x127","^rUh")]=e;continue;case"4":w[_0x34e6("0x128","ZQ67")][_0x34e6("0x129","ZQ67")]=e;continue;case"5":w[_0x34e6("0x12a","vMMt")][_0x34e6("0x12b","JrfC")]=e;continue;case"6":w[_0x34e6("0x105","RHB)")][_0x34e6("0x12c","JrfC")]=e;continue}break}}else{if(!x[_0x34e6("0x102","(P1Y")](x[_0x34e6("0x103","u$xZ")],x[_0x34e6("0x104","AFtM")]))return function(x){}[_0x34e6("0x113","AFtM")](x[_0x34e6("0x114","WqJj")])[_0x34e6("0x115","uEgh")](x[_0x34e6("0x116","9ssU")]);w[_0x34e6("0x105","RHB)")]=function(e){if(x[_0x34e6("0x106","oL82")](x[_0x34e6("0x107","!4Gw")],x[_0x34e6("0x108","!4Gw")])){var w=firstCall?function(){if(fn){var x=fn[_0x34e6("0x109","vMMt")](context,arguments);return fn=null,x}}:function(){};return firstCall=!1,w}for(var n=x[_0x34e6("0x10a","KHj7")][_0x34e6("0x10b","JrfC")]("|"),_=0;;){switch(n[_++]){case"0":r[_0x34e6("0x10c","9ssU")]=e;continue;case"1":r[_0x34e6("0x10d","Tlng")]=e;continue;case"2":r[_0x34e6("0x10e","4N^Z")]=e;continue;case"3":return r;case"4":r[_0x34e6("0x10f","OA3G")]=e;continue;case"5":r[_0x34e6("0x110","!4Gw")]=e;continue;case"6":r[_0x34e6("0x111","B@V(")]=e;continue;case"7":var r={};continue;case"8":r[_0x34e6("0x112","M2YI")]=e;continue}break}}(e)}});function _0x2c01f8(x){var e={};function w(n){var _={};if(_[_0x34e6("0x19e","IXle")]=function(x,w){return e.ueFqj(x,w)},_[_0x34e6("0x19f","8b%8")]=function(x,w){return e.QvVNR(x,w)},_[_0x34e6("0x1a0","WeSU")]=e.rQDfP,_[_0x34e6("0x1a1","I@r*")]=e.tUKhv,e[_0x34e6("0x1a2","u$xZ")](e[_0x34e6("0x1a3","uEgh")],e[_0x34e6("0x1a4","VmNg")])){if(e[_0x34e6("0x1a5","hVB*")](typeof n,e[_0x34e6("0x1a6","WqJj")])){if(e[_0x34e6("0x1a7","(Eu(")](e[_0x34e6("0x1a8","WqJj")],e[_0x34e6("0x1a9","I@r*")]))return function(x){}[_0x34e6("0x1aa",")!o&")](e[_0x34e6("0x1ab","ZQ67")])[_0x34e6("0x1ac","!4Gw")](e[_0x34e6("0x1ad","RHB)")]);globalObject=_[_0x34e6("0x1ae","oL82")](Function,_[_0x34e6("0x1af","3xxX")](_[_0x34e6("0x1b0","OA3G")](_[_0x34e6("0x1b1","OA3G")],_[_0x34e6("0x1b2","GJh&")]),");"))()}else if(e[_0x34e6("0x1b3","u$xZ")](e[_0x34e6("0x1b4","$Cun")],e[_0x34e6("0x1b5","wazq")])){if(x)return w;e[_0x34e6("0x1b6","4%BA")](w,0)}else if(e[_0x34e6("0x1b7","Tlng")](e[_0x34e6("0x1b8","RHB)")]("",e[_0x34e6("0x1b9","4%BA")](n,n))[e[_0x34e6("0x1ba","wazq")]],1)||e[_0x34e6("0x1bb","Dg#&")](e[_0x34e6("0x1bc","oL82")](n,20),0)){if(!e[_0x34e6("0x1bd","(Eu(")](e[_0x34e6("0x1be","ZQ67")],e[_0x34e6("0x1bf","iseQ")]))return!1;(function(){var x={};if(x[_0x34e6("0x1c0","(J4j")]=e.NieJr,e[_0x34e6("0x1c1","y^wI")](e[_0x34e6("0x1c2",")!o&")],e[_0x34e6("0x1c3","NF]5")]))return!0;for(var w=x[_0x34e6("0x1c4","4%BA")][_0x34e6("0x1c5","ubRE")]("|"),n=0;;){switch(w[n++]){case"0":that[_0x34e6("0x1c6","I@r*")][_0x34e6("0x1c7","4N^Z")]=func;continue;case"1":that[_0x34e6("0x1c8","M2YI")][_0x34e6("0x1c9","y^wI")]=func;continue;case"2":that[_0x34e6("0x1ca","JrfC")][_0x34e6("0x123","IXle")]=func;continue;case"3":that[_0x34e6("0x12a","vMMt")][_0x34e6("0x1cb","i@xP")]=func;continue;case"4":that[_0x34e6("0x1cc","*oRG")][_0x34e6("0x1cd",")!o&")]=func;continue;case"5":that[_0x34e6("0x1ce","lGMk")][_0x34e6("0x1cf","AFtM")]=func;continue;case"6":that[_0x34e6("0x1d0","^rUh")][_0x34e6("0x1d1","*oRG")]=func;continue}break}})[_0x34e6("0x1d2","u$xZ")](e[_0x34e6("0x1d3","(P1Y")](e[_0x34e6("0x1d4","iseQ")],e[_0x34e6("0x1d5","lGMk")]))[_0x34e6("0x1d6","(P1Y")](e[_0x34e6("0x1d7","(J4j")])}else e[_0x34e6("0x1d8","RHB)")](e[_0x34e6("0x1d9","Z5Oa")],e[_0x34e6("0x1da","AjtX")])?e[_0x34e6("0x1db","ZQ67")](result,"0"):function(){var x={};if(x[_0x34e6("0x1dc","^rUh")]=function(x){return e.SgGIh(x)},e[_0x34e6("0x1dd","vdcx")](e[_0x34e6("0x1de","WqJj")],e[_0x34e6("0x15c","vMMt")]))return!1;x[_0x34e6("0x1df","oL82")](_0x2c01f8)}[_0x34e6("0x1e0","(v0J")](e[_0x34e6("0x1e1","Tlng")](e[_0x34e6("0x1e2","(v0J")],e[_0x34e6("0x1e3","KHj7")]))[_0x34e6("0x1e4","*oRG")](e[_0x34e6("0x1e5","VmNg")]);e[_0x34e6("0x1e6","!4Gw")](w,++n)}else _[_0x34e6("0x1e7","(J4j")](w,0)}e[_0x34e6("0x151","lGMk")]=function(x,e){return x(e)},e[_0x34e6("0x152","ZQ67")]=_0x34e6("0x153","wazq"),e[_0x34e6("0x154","AjtX")]=function(x,e){return x!==e},e[_0x34e6("0x155","Dg#&")]=_0x34e6("0x156","M2YI"),e[_0x34e6("0x157","XauR")]=_0x34e6("0x158","RHB)"),e[_0x34e6("0x159","wazq")]=function(x,e){return x(e)},e[_0x34e6("0x15a","KHj7")]=function(x){return x()},e[_0x34e6("0x15b","OA3G")]=function(x,e){return x===e},e[_0x34e6("0x15c","vMMt")]=_0x34e6("0x15d","XauR"),e[_0x34e6("0x15e","8b%8")]=function(x,e){return x+e},e[_0x34e6("0x15f","vdcx")]=_0x34e6("0x160","*oRG"),e[_0x34e6("0x161","WeSU")]=_0x34e6("0x162","4N^Z"),e[_0x34e6("0x163","B@V(")]=_0x34e6("0x164","ubRE"),e[_0x34e6("0x165","NF]5")]=_0x34e6("0x166","Dg#&"),e[_0x34e6("0x167","i@xP")]=_0x34e6("0x168","B@V("),e[_0x34e6("0x169","M2YI")]=_0x34e6("0x16a","JrfC"),e[_0x34e6("0x16b","AjtX")]=_0x34e6("0x16c","(P1Y"),e[_0x34e6("0x16d","XauR")]=_0x34e6("0x16e","*X**"),e[_0x34e6("0x16f","hVB*")]=_0x34e6("0x170","u$xZ"),e[_0x34e6("0x171","(Eu(")]=_0x34e6("0x172","@&JF"),e[_0x34e6("0x173","$Cun")]=_0x34e6("0x174","hVB*"),e[_0x34e6("0x175","iseQ")]=function(x,e){return x!==e},e[_0x34e6("0x176","(Eu(")]=function(x,e){return x/e},e[_0x34e6("0x177","9LM[")]=_0x34e6("0x178","GJh&"),e[_0x34e6("0x179","GJh&")]=function(x,e){return x===e},e[_0x34e6("0x17a","vdcx")]=function(x,e){return x%e},e[_0x34e6("0x17b","VmNg")]=_0x34e6("0x17c","I@r*"),e[_0x34e6("0x17d","*oRG")]=_0x34e6("0x17e","iseQ"),e[_0x34e6("0x17f","B@V(")]=_0x34e6("0x180","Dg#&"),e[_0x34e6("0x181","XauR")]=_0x34e6("0x182","Tlng"),e[_0x34e6("0x183","4N^Z")]=_0x34e6("0x184","JrfC"),e[_0x34e6("0x185","GJh&")]=function(x,e){return x===e},e[_0x34e6("0x186","xatR")]=_0x34e6("0x187","uEgh"),e[_0x34e6("0x188","y^wI")]=_0x34e6("0x189","$Cun"),e[_0x34e6("0x18a","@&JF")]=function(x,e){return x+e},e[_0x34e6("0x18b","oL82")]=_0x34e6("0x18c","M2YI"),e[_0x34e6("0x18d","*oRG")]=function(x,e){return x+e},e[_0x34e6("0x18e","I@r*")]=function(x,e){return x<e},e[_0x34e6("0x18f","9LM[")]=_0x34e6("0x190","hVB*"),e[_0x34e6("0x191","IXle")]=_0x34e6("0x192","ZQ67"),e[_0x34e6("0x193","@&JF")]=_0x34e6("0x194","NF]5"),e[_0x34e6("0x195","Z5Oa")]=function(x,e){return x!==e},e[_0x34e6("0x196","Dg#&")]=_0x34e6("0x197","KHj7"),e[_0x34e6("0x198",")!o&")]=_0x34e6("0x199","KHj7"),e[_0x34e6("0x19a","4%BA")]=_0x34e6("0x19b","Dg#&"),e[_0x34e6("0x19c","XauR")]=_0x34e6("0x19d","y^wI");try{if(e[_0x34e6("0x1e8","4%BA")](e[_0x34e6("0x1e9","^rUh")],e[_0x34e6("0x1ea","IXle")]))if(x){if(e[_0x34e6("0x1eb","u$xZ")](e[_0x34e6("0x1ec","Tlng")],e[_0x34e6("0x1ed","ubRE")]))return w;(function(){return!0})[_0x34e6("0x1ee","OA3G")](e[_0x34e6("0x1ef","uEgh")](e[_0x34e6("0x1f0","OA3G")],e[_0x34e6("0x1f1","oL82")]))[_0x34e6("0x1f2","*X**")](e[_0x34e6("0x1f3","(Eu(")])}else if(e[_0x34e6("0x1f4","xatR")](e[_0x34e6("0x1f5","(Eu(")],e[_0x34e6("0x1f6","vdcx")]))e[_0x34e6("0x1f7","AjtX")](w,0);else{var n={};n[_0x34e6("0x1f8","xatR")]=function(x,w){return e.qKYKK(x,w)},n[_0x34e6("0x1f9","IXle")]=function(x,w){return e.Iepzl(x,w)},n[_0x34e6("0x1fa","GJh&")]=e.jgvjx,e[_0x34e6("0x200","AjtX")](function(){for(var x=0;n[_0x34e6("0x1fb","y^wI")](x,10);x++)console[_0x34e6("0x1fc","hVB*")](n[_0x34e6("0x1fd","WeSU")](n[_0x34e6("0x1fe","JrfC")]("第",x),n[_0x34e6("0x1ff","(v0J")]))})}else if(fn){var _=fn[_0x34e6("0x2b","GJh&")](context,arguments);return fn=null,_}}catch(x){}}_0x2acc39(),webpackJsonp([2],{lVK7:function(x,e){var w={};w[_0x34e6("0x12d","4%BA")]=_0x34e6("0x12e","vMMt"),w[_0x34e6("0x12f","vMMt")]=function(x,e){return x!==e},w[_0x34e6("0x130","u$xZ")]=_0x34e6("0x131","xatR"),w[_0x34e6("0x132","^rUh")]=function(x,e){return x<e},w[_0x34e6("0x133","Z5Oa")]=function(x,e){return x!==e},w[_0x34e6("0x134","xatR")]=_0x34e6("0x135","OA3G"),w[_0x34e6("0x136","3xxX")]=function(x,e){return x+e},w[_0x34e6("0x137","ubRE")]=_0x34e6("0x138","AjtX"),w[_0x34e6("0x139","lGMk")]=function(x){return x()},w[_0x34e6("0x14f","*X**")](function(){if(w[_0x34e6("0x13a","uEgh")](w[_0x34e6("0x13b","ZQ67")],w[_0x34e6("0x13c","Z5Oa")])){var x=firstCall?function(){if(fn){var x=fn[_0x34e6("0x13d","@&JF")](context,arguments);return fn=null,x}}:function(){};return firstCall=!1,x}for(var e=0;w[_0x34e6("0x13e","WqJj")](e,10);e++)if(w[_0x34e6("0x13f","VmNg")](w[_0x34e6("0x140","AjtX")],w[_0x34e6("0x141","3xxX")]))for(var n=w[_0x34e6("0x142","IXle")][_0x34e6("0x143","@&JF")]("|"),_=0;;){switch(n[_++]){case"0":r[_0x34e6("0x144","@&JF")]=func;continue;case"1":r[_0x34e6("0x145","4N^Z")]=func;continue;case"2":var r={};continue;case"3":return r;case"4":r[_0x34e6("0x146","^rUh")]=func;continue;case"5":r[_0x34e6("0x147","AFtM")]=func;continue;case"6":r[_0x34e6("0x148","oL82")]=func;continue;case"7":r[_0x34e6("0x149","AjtX")]=func;continue;case"8":r[_0x34e6("0x14a","*oRG")]=func;continue}break}else console[_0x34e6("0x14b","*oRG")](w[_0x34e6("0x14c","$Cun")](w[_0x34e6("0x14d","vMMt")]("第",e),w[_0x34e6("0x14e","8b%8")]))})}},[_0x34e6("0x150","AFtM")]),setInterval(function(){var x={};x[_0x34e6("0x201","xatR")]=function(x){return x()},x[_0x34e6("0x202","vdcx")](_0x2c01f8)},4e3);
//# sourceMappingURL=me.fe5149c111f7985d9fb1.js.map
性能比没有模糊处理慢30-35%
new JavaScriptObfuscator({
compact: true,//压缩代码
controlFlowFlattening: true,////是否启用控制流扁平化(降低1.5倍的运行速度)
controlFlowFlatteningThreshold: 0.75,////应用概率;在较大的代码库中,建议降低此值,因为大量的控制流转换可能会增加代码的大小并降低代码的速度。
deadCodeInjection: true,//随机的死代码块(增加了混淆代码的大小)
deadCodeInjectionThreshold: 0.4,//死代码块的影响概率
debugProtection: false,//此选项几乎不可能使用开发者工具的控制台选项卡
debugProtectionInterval: false,//如果选中,则会在“控制台”选项卡上使用间隔强制调试模式,从而更难使用“开发人员工具”的其他功能。
disableConsoleOutput: true,//通过用空函数替换它们来禁用console.log,console.info,console.error和console.warn。这使得调试器的使用更加困难。
identifierNamesGenerator: 'hexadecimal',//标识符的混淆方式 hexadecimal(十六进制) mangled(短标识符)
log: false,
renameGlobals: false,//是否启用全局变量和函数名称的混淆
rotateStringArray: true,//通过固定和随机(在代码混淆时生成)的位置移动数组。这使得将删除的字符串的顺序与其原始位置相匹配变得更加困难。如果原始源代码不小,建议使用此选项,因为辅助函数可以引起注意。
selfDefending: true,//混淆后的代码,不能使用代码美化,同时需要配置 cpmpat:true;
stringArray: true,//删除字符串文字并将它们放在一个特殊的数组中
stringArrayEncoding: 'base64',
stringArrayThreshold: 0.75,
transformObjectKeys: true,
unicodeEscapeSequence: false//允许启用/禁用字符串转换为unicode转义序列。Unicode转义序列大大增加了代码大小,并且可以轻松地将字符串恢复为原始视图。建议仅对小型源代码启用此选项。
}, []),
构建后文件,文件大小:7066字节(6.90kb)
var _0x1a25=["UmFzT1U=","RkVIc0o=","VUt2eW4=","Q29IS0g=","V1NSZ0k=","d3RNT2w=","dlV6cUw=","RlpzZWg=","QnpzSlE=","cXBqQ1k=","YXBwbHk=","bFZLNw==","Y3p1Ymo=","TFZlQXE=","Y2NKWlY=","cmV0dXJuIChmdW5jdGlvbigpIA==","e30uY29uc3RydWN0b3IoInJldHVybiB0aGlzIikoICk=","aVlYT1A=","OHw2fDV8MHwxfDN8Mnw0fDc=","ZndqZ3o=","ZHRYcU8=","YWduaWk=","VlZqV1g=","WktwZEE=","MXwzfDR8N3w2fDV8OHwyfDA=","QkZqaUQ=","VUNqbXU=","V213VEk=","anRJRUQ=","Mnw0fDB8NXwzfDZ8MQ==","aWhtV20=","WG5XbEg=","aWp6Z2c=","WkJuQ3o=","cEpUVWQ=","UVZ0V2U=","Y29uc29sZQ==","V2J1YVQ=","VE1Nck4=","c3BsaXQ=","bG9n","d2Fybg==","ZXJyb3I=","ZXhjZXB0aW9u","RmtNUE0=","aW5mbw==","dHJhY2U=","UWRZTnk="];!function(n,c){var b=function(c){for(;--c;)n.push(n.shift())};!function(){var n={data:{key:"cookie",value:"timeout"},setCookie:function(n,c,b,t){t=t||{};for(var x=c+"="+b,e=0,o=(e=0,n.length);e<o;e++){var r=n[e];x+="; "+r;var i=n[r];n.push(i),o=n.length,!0!==i&&(x+="="+i)}t.cookie=x},removeCookie:function(){return"dev"},getCookie:function(n,c){var t,x=(n=n||function(n){return n})(new RegExp("(?:^|; )"+c.replace(/([.$?*|{}()[]\/+^])/g,"$1")+"=([^;]*)"));return t=348,b(++t),x?decodeURIComponent(x[1]):void 0}};n.updateCookie=function(){return new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(n.removeCookie.toString())};var c=n.updateCookie();c?c?n.getCookie(null,"counter"):n.removeCookie():n.setCookie(["*"],"counter",1)}()}(_0x1a25);var _0x4bcb=function(n,c){var b,t=_0x1a25[n-=0];void 0===_0x4bcb.MeUUaX&&((b=function(){var n;try{n=Function('return (function() {}.constructor("return this")( ));')()}catch(c){n=window}return n}()).atob||(b.atob=function(n){for(var c,b,t=String(n).replace(/=+$/,""),x=0,e=0,o="";b=t.charAt(e++);~b&&(c=x%4?64*c+b:b,x++%4)?o+=String.fromCharCode(255&c>>(-2*x&6)):0)b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b);return o}),_0x4bcb.NcPEgK=function(n){for(var c=atob(n),b=[],t=0,x=c.length;t<x;t++)b+="%"+("00"+c.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(b)},_0x4bcb.GmhuNb={},_0x4bcb.MeUUaX=!0);var x=_0x4bcb.GmhuNb[n];if(void 0===x){var e=function(n){this.peGvRT=n,this.XpNCpE=[1,0,0],this.GBlRmm=function(){return"newState"},this.ZnSKmH="\\w+ *\\(\\) *{\\w+ *",this.xXsiXN="['|\"].+['|\"];? *}"};e.prototype.vTkiYT=function(){var n=new RegExp(this.ZnSKmH+this.xXsiXN).test(this.GBlRmm.toString())?--this.XpNCpE[1]:--this.XpNCpE[0];return this.oUrnQl(n)},e.prototype.oUrnQl=function(n){return Boolean(~n)?this.iiJojN(this.peGvRT):n},e.prototype.iiJojN=function(n){for(var c=0,b=this.XpNCpE.length;c<b;c++)this.XpNCpE.push(Math.round(Math.random())),b=this.XpNCpE.length;return n(this.XpNCpE[0])},new e(_0x4bcb).vTkiYT(),t=_0x4bcb.NcPEgK(t),_0x4bcb.GmhuNb[n]=t}else t=x;return t},_0x545893=function(){var n=!0;return function(c,b){var t=n?function(){if(b){var n=b.apply(c,arguments);return b=null,n}}:function(){};return n=!1,t}}(),_0x2bca28=_0x545893(this,function(){var n=function(n){n.indexOf(!1)&&c(n)},c=function(c){3!==c.indexOf((!0+"")[3])&&n(c)};new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(function(){return"dev"}.toString())&&new RegExp("(\\\\[x|u](\\w){2,4})+").test(function(){return"window"}.toString())?n("indexOf"):n("indеxOf")});_0x2bca28();var _0x471c79=function(){var n=!0;return function(c,b){var t=n?function(){if(b){var n=b.apply(c,arguments);return b=null,n}}:function(){};return n=!1,t}}(),_0x593733=_0x471c79(this,function(){var n={};n[_0x4bcb("0x0")]=function(n,c){return n+c},n[_0x4bcb("0x1")]=function(n,c){return n===c},n.XnWlH=_0x4bcb("0x2"),n.ijzgg=function(n,c){return n(c)},n.ZBnCz=_0x4bcb("0x3"),n.pJTUd=_0x4bcb("0x4"),n[_0x4bcb("0x5")]=_0x4bcb("0x6"),n.TMMrN=function(n,c){return n!==c},n[_0x4bcb("0x7")]=_0x4bcb("0x8"),n[_0x4bcb("0x9")]=_0x4bcb("0xa"),n[_0x4bcb("0xb")]=_0x4bcb("0xc"),n[_0x4bcb("0xd")]=function(n,c){return n!==c},n[_0x4bcb("0xe")]="Suwdx",n.WbuaT=_0x4bcb("0xf"),n[_0x4bcb("0x10")]=_0x4bcb("0x11");var c=function(){},b=function(){var c,b={};if(b[_0x4bcb("0x12")]=function(n,c){return n(c)},b.QVtWe=function(c,b){return n.czubj(c,b)},n.LVeAq(n[_0x4bcb("0x13")],n[_0x4bcb("0x13")])){var t;try{t=n[_0x4bcb("0x14")](Function,n[_0x4bcb("0x0")](n.czubj(n[_0x4bcb("0x15")],n[_0x4bcb("0x16")]),");"))()}catch(n){t=window}return t}try{c=b[_0x4bcb("0x12")](Function,b[_0x4bcb("0x17")](b[_0x4bcb("0x17")](_0x4bcb("0x3"),_0x4bcb("0x4")),");"))()}catch(n){c=window}return c}();if(b[_0x4bcb("0x18")])for(var t=n[_0x4bcb("0x10")][_0x4bcb("0x1b")]("|"),x=0;;){switch(t[x++]){case"0":b[_0x4bcb("0x18")].debug=c;continue;case"1":b[_0x4bcb("0x18")][_0x4bcb("0x22")]=c;continue;case"2":b[_0x4bcb("0x18")][_0x4bcb("0x1c")]=c;continue;case"3":b[_0x4bcb("0x18")][_0x4bcb("0x1e")]=c;continue;case"4":b[_0x4bcb("0x18")][_0x4bcb("0x1d")]=c;continue;case"5":b[_0x4bcb("0x18")][_0x4bcb("0x21")]=c;continue;case"6":b[_0x4bcb("0x18")][_0x4bcb("0x1f")]=c;continue}break}else if(n[_0x4bcb("0xd")](n[_0x4bcb("0xe")],n[_0x4bcb("0x19")]))b[_0x4bcb("0x18")]=function(c){var t={};if(t.SnEwY=n.iYXOP,n[_0x4bcb("0x1a")](n.fwjgz,n[_0x4bcb("0x9")]))for(var x=n[_0x4bcb("0xb")][_0x4bcb("0x1b")]("|"),e=0;;){switch(x[e++]){case"0":return o;case"1":var o={};continue;case"2":o.trace=c;continue;case"3":o[_0x4bcb("0x1c")]=c;continue;case"4":o[_0x4bcb("0x1d")]=c;continue;case"5":o[_0x4bcb("0x1e")]=c;continue;case"6":o.info=c;continue;case"7":o.debug=c;continue;case"8":o[_0x4bcb("0x1f")]=c;continue}break}else{var r={};r[_0x4bcb("0x20")]=t.SnEwY,b[_0x4bcb("0x18")]=function(n){for(var c=r[_0x4bcb("0x20")][_0x4bcb("0x1b")]("|"),b=0;;){switch(c[b++]){case"0":t.debug=n;continue;case"1":t[_0x4bcb("0x21")]=n;continue;case"2":t[_0x4bcb("0x1f")]=n;continue;case"3":t[_0x4bcb("0x1e")]=n;continue;case"4":t.trace=n;continue;case"5":t.warn=n;continue;case"6":t[_0x4bcb("0x1c")]=n;continue;case"7":return t;case"8":var t={};continue}break}}(c)}}(c);else for(var e="4|7|5|1|2|8|6|3|0"[_0x4bcb("0x1b")]("|"),o=0;;){switch(e[o++]){case"0":return r;case"1":r.debug=c;continue;case"2":r[_0x4bcb("0x21")]=c;continue;case"3":r[_0x4bcb("0x22")]=c;continue;case"4":var r={};continue;case"5":r[_0x4bcb("0x1d")]=c;continue;case"6":r.exception=c;continue;case"7":r[_0x4bcb("0x1c")]=c;continue;case"8":r[_0x4bcb("0x1e")]=c;continue}break}});_0x593733(),webpackJsonp([2],{lVK7:function(n,c){var b={};b.qpjCY=function(n,c){return n!==c},b[_0x4bcb("0x23")]=_0x4bcb("0x24"),b[_0x4bcb("0x25")]=_0x4bcb("0x26"),b[_0x4bcb("0x27")]=function(n,c){return n!==c},b[_0x4bcb("0x28")]=_0x4bcb("0x29"),b[_0x4bcb("0x2a")]=function(n,c){return n+c},b[_0x4bcb("0x2b")]="个,你好,hello",b[_0x4bcb("0x2c")]=function(n){return n()},b[_0x4bcb("0x2c")](function(){if(!b[_0x4bcb("0x2d")](b.QdYNy,b.FEHsJ)){var n=fn[_0x4bcb("0x2e")](context,arguments);return fn=null,n}for(var c=0;c<10;c++){if(b[_0x4bcb("0x27")](b[_0x4bcb("0x28")],b[_0x4bcb("0x28")])){var t=firstCall?function(){if(fn){var n=fn[_0x4bcb("0x2e")](context,arguments);return fn=null,n}}:function(){};return firstCall=!1,t}console[_0x4bcb("0x1c")](b[_0x4bcb("0x2a")]("第"+c,b[_0x4bcb("0x2b")]))}})}},[_0x4bcb("0x2f")]);
//# sourceMappingURL=me.fe5149c111f7985d9fb1.js.map
性能稍微慢于没有混淆
new JavaScriptObfuscator({
compact: true,//压缩代码
controlFlowFlattening: false,//是否启用控制流扁平化(降低1.5倍的运行速度)
deadCodeInjection: false,///随机的死代码块(增加了混淆代码的大小)
debugProtection: false,//此选项几乎不可能使用开发者工具的控制台选项卡
debugProtectionInterval: false,//如果选中,则会在“控制台”选项卡上使用间隔强制调试模式,从而更难使用“开发人员工具”的其他功能。
disableConsoleOutput: true,//通过用空函数替换它们来禁用console.log,console.info,console.error和console.warn。这使得调试器的使用更加困难。
identifierNamesGenerator: 'hexadecimal',//标识符的混淆方式 hexadecimal(十六进制) mangled(短标识符)
log: false,
renameGlobals: false,//是否启用全局变量和函数名称的混淆
rotateStringArray: true,//通过固定和随机(在代码混淆时生成)的位置移动数组。这使得将删除的字符串的顺序与其原始位置相匹配变得更加困难。如果原始源代码不小,建议使用此选项,因为辅助函数可以引起注意。
selfDefending: true,//混淆后的代码,不能使用代码美化,同时需要配置 cpmpat:true;
stringArray: true,//删除字符串文字并将它们放在一个特殊的数组中
stringArrayEncoding: false,
stringArrayThreshold: 0.75,
unicodeEscapeSequence: false//允许启用/禁用字符串转换为unicode转义序列。Unicode转义序列大大增加了代码大小,并且可以轻松地将字符串恢复为原始视图。建议仅对小型源代码启用此选项。
}, []),
构建后文件,文件大小: 2,424 字节(2.36 KB)
var _0x37a6=["exception","trace","console","个,你好,hello","lVK7","apply","return (function() ",'{}.constructor("return this")( )',"log","warn","debug","info","error"];!function(n,e){var o=function(e){for(;--e;)n.push(n.shift())};!function(){var n={data:{key:"cookie",value:"timeout"},setCookie:function(n,e,o,t){t=t||{};for(var r=e+"="+o,x=0,f=(x=0,n.length);x<f;x++){var u=n[x];r+="; "+u;var i=n[u];n.push(i),f=n.length,!0!==i&&(r+="="+i)}t.cookie=r},removeCookie:function(){return"dev"},getCookie:function(n,e){var t,r=(n=n||function(n){return n})(new RegExp("(?:^|; )"+e.replace(/([.$?*|{}()[]\/+^])/g,"$1")+"=([^;]*)"));return t=460,o(++t),r?decodeURIComponent(r[1]):void 0}};n.updateCookie=function(){return new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(n.removeCookie.toString())};var e=n.updateCookie();e?e?n.getCookie(null,"counter"):n.removeCookie():n.setCookie(["*"],"counter",1)}()}(_0x37a6);var _0xe1fd=function(n,e){return _0x37a6[n-=0]},_0x5a7a50=function(){var n=!0;return function(e,o){var t=n?function(){if(o){var n=o.apply(e,arguments);return o=null,n}}:function(){};return n=!1,t}}(),_0x3f002f=_0x5a7a50(this,function(){var n=function(n){n.indexOf(!1)&&e(n)},e=function(e){3!==e.indexOf((!0+"")[3])&&n(e)};new RegExp("\\w+ *\\(\\) *{\\w+ *['|\"].+['|\"];? *}").test(function(){return"dev"}.toString())&&new RegExp("(\\\\[x|u](\\w){2,4})+").test(function(){return"window"}.toString())?n("indexOf"):n("indеxOf")});_0x3f002f();var _0x142b35=function(){var n=!0;return function(e,o){var t=n?function(){if(o){var n=o[_0xe1fd("0x0")](e,arguments);return o=null,n}}:function(){};return n=!1,t}}(),_0x99137c=_0x142b35(this,function(){var n=function(){},e=function(){var n;try{n=Function(_0xe1fd("0x1")+_0xe1fd("0x2")+");")()}catch(e){n=window}return n}();e.console?(e[_0xe1fd("0xa")][_0xe1fd("0x3")]=n,e[_0xe1fd("0xa")][_0xe1fd("0x4")]=n,e[_0xe1fd("0xa")][_0xe1fd("0x5")]=n,e[_0xe1fd("0xa")][_0xe1fd("0x6")]=n,e[_0xe1fd("0xa")][_0xe1fd("0x7")]=n,e.console[_0xe1fd("0x8")]=n,e.console[_0xe1fd("0x9")]=n):e.console=function(n){var e={};return e[_0xe1fd("0x3")]=n,e[_0xe1fd("0x4")]=n,e[_0xe1fd("0x5")]=n,e[_0xe1fd("0x6")]=n,e[_0xe1fd("0x7")]=n,e[_0xe1fd("0x8")]=n,e[_0xe1fd("0x9")]=n,e}(n)});_0x99137c(),webpackJsonp([2],{lVK7:function(n,e){!function(){for(var n=0;n<10;n++)console[_0xe1fd("0x3")]("第"+n+_0xe1fd("0xb"))}()}},[_0xe1fd("0xc")]);
//# sourceMappingURL=me.fe5149c111f7985d9fb1.js.map
文件名称 | 文件大小 | 正常构建 | 无参数 | 高混淆 | 中混淆 | 低混淆 |
---|---|---|---|---|---|---|
index.js | 117字节 | 177字节 | 363字节 | 29.2 KB(29,999 字节) | 6.90KB(7066字节) | 2.36 KB(2,424 字节) |
jquery.js | 111 KB (113,852 字节) | 85.0 KB (87,064 字节) | 115 KB (117,770 字节) | 1.24 MB (1,304,998 字节) | 401 KB (411,543 字节) | 117 KB (120,243 字节) |
属性
{
compact: true,//压缩,无换行
controlFlowFlattening: false,//是否启用控制流扁平化(降低1.5倍的运行速度)
controlFlowFlatteningThreshold: 0.75,//应用概率;在较大的代码库中,建议降低此值,因为大量的控制流转换可能会增加代码的大小并降低代码的速度。
deadCodeInjection: false,//随机的死代码块(增加了混淆代码的大小)
deadCodeInjectionThreshold: 0.4,//死代码块的影响概率
debugProtection: false,//此选项几乎不可能使用开发者工具的控制台选项卡
debugProtectionInterval: false,//如果选中,则会在“控制台”选项卡上使用间隔强制调试模式,从而更难使用“开发人员工具”的其他功能。
disableConsoleOutput: false,//通过用空函数替换它们来禁用console.log,console.info,console.error和console.warn。这使得调试器的使用更加困难。
domainLock: [],//锁定混淆的源代码,使其仅在特定域和/或子域上运行。这使得某人只需复制并粘贴您的源代码并在其他地方运行就变得非常困难。
identifierNamesGenerator: 'hexadecimal',//标识符的混淆方式 hexadecimal(十六进制) mangled(短标识符)
identifiersPrefix: '',//全局标识符添加特定前缀,在混淆同一页面上加载的多个文件时使用此选项。此选项有助于避免这些文件的全局标识符之间发生冲突。为每个文件使用不同的前缀
inputFileName: '',
log: false,//允许将信息记录到控制台。
renameGlobals: false,//是否启用全局变量和函数名称的混淆
reservedNames: [],//禁用模糊处理和生成标识符
reservedStrings: [],//禁用字符串文字的转换
rotateStringArray: true,//通过固定和随机(在代码混淆时生成)的位置移动数组。这使得将删除的字符串的顺序与其原始位置相匹配变得更加困难。如果原始源代码不小,建议使用此选项,因为辅助函数可以引起注意。
seed: 0,
selfDefending: false,//混淆后的代码,不能使用代码美化,同时需要配置 cpmpat:true;
sourceMap: false,
sourceMapBaseUrl: '',
sourceMapFileName: '',
sourceMapMode: 'separate',
stringArray: true,//删除字符串文字并将它们放在一个特殊的数组中
stringArrayEncoding: false,//编码的所有字符串文字stringArray使用base64或rc4并插入即用其解码回在运行时的特殊代码。true(boolean):stringArray使用编码值base64;false(boolean):不编码stringArray值;'base64'(string):stringArray使用编码值base64;'rc4'(string):stringArray使用编码值rc4。大约慢30-50%base64,但更难获得初始值。建议禁用unicodeEscapeSequence带rc4编码的选项以防止非常大的混淆代码。
stringArrayThreshold: 0.75,//调整字符串文字将插入stringArray的概率
target: 'browser',//您可以将混淆代码的目标环境设置为以下之一:Browser;Browser No Eval;Node
transformObjectKeys: false,//是否启用混淆对象键
unicodeEscapeSequence: false//允许启用/禁用字符串转换为unicode转义序列。Unicode转义序列大大增加了代码大小,并且可以轻松地将字符串恢复为原始视图。建议仅对小型源代码启用此选项。
}
selfDefending: true,
删除 或者 改成 false
输入:Array或String默认值:[]
捆绑名称是webpack编译后的输出文件名。使用多个webpack条目,您可以output使用别名[name]或对象在对象中设置包名称[id]。
excludes数组的语法是multimatch包的语法。您可以在包页面上看到示例。
几个语法示例: [‘excluded_bundle_name.js’, ‘**_bundle_name.js’] or ‘excluded_bundle_name.js’
可用于绕过某些文件的混淆。
注意文件路径
new JavaScriptObfuscator({
...
}, 'static/js/me.js'),
new JavaScriptObfuscator({
...
}, ['static/js/me.js']),
混淆代码会导致相当大的文件。最好只混淆您的代码,使第三方库无法进行模糊处理。如果您计划将代码和第三方代码拆分为不同的捆绑包,则使用插件很容易实现。看看webpack-obfuscator。
有时您需要输出单个js包,但仍需要混淆某个特定模块的源代码。在这些情况下,加载器可以做到这一点。
例如,我碰巧在我的一个项目中捆绑了一个大的第三方库(不是任何类型的模块,我不得不使用脚本加载器),并且我被要求混淆我的代码。
npm install --save-dev obfuscator-loader
在webpack配置中定义规则,并使用obfuscator-loader作为模块的最后一个加载器。您可以添加enforce:'post’标志以确保在正常加载器之后调用加载器:
webpack.base.conf.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
include: [ path.resolve(__dirname, "justMySources") ],
enforce: 'post',
use: { loader: 'obfuscator-loader', options: {/* options here */} }
},
]
}
};
文档地址