BatchEncryption解密变量加密b
//&cls&cscript -nologo -e:jscript "%~f0" "%~1">"$解密.txt" & echo 解密完成!& choice /t 2 /d y /n & exit
var fso=new ActiveXObject('Scripting.FileSystemObject'),s='',key='',n=1;
var ws=new ActiveXObject('Wscript.Shell');
var f=fso.OpenTextFile(WSH.Arguments(0), 1);
while(!f.AtEndOfStream){
var line=f.ReadLine();
if(n<3){s+=line+'\r\n'}else s+=crack(line, key)+'\r\n';
n++;
}
WSH.echo(s);
function crack(str, k){
var m=str.match(/%[^%]+?:~-?\d*,1%/g);
if(m){
for(var i=0;i<m.length;i++){
if(!key)var k=ws.ExpandEnvironmentStrings(m[i].replace(/:.+$/, '')+'%');
var n=m[i].replace(/^%.+?:~(-?\d*).+$/, '$1');
if(n=='')n=0;
var str=str.replace(m[i], n=='-1'?k.slice(Number(n)):k.slice(Number(n), Number(n)+1));
}
}
//var kw=str.match(/^@set '=\^">nul&.+?&@set '=([\x20-\x7e]{294})&@.+?&@echo "$/);
var kw=str.match(/^@set '=\^">nul&.+?&@set '=(.+?)&@set.+?&@echo "$/);
if(kw)key=kw[1].replace(/\^{3}/g, '^');
return str
}