[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 pcl_test 于 2024-5-2 17:58 编辑

以下代码保存为decrypt.bat,跟需解密的其它bat文件放一起运行
  1. /*&cls&echo off&cd /d "%~dp0"
  2. for /f "delims=" %%a in ('dir /a-d-h/b *.bat *.cmd') do (
  3. if /i "%%~nxa" neq "%~nx0" (
  4.     echo;"%%a"
  5. cscript -nologo -e:jscript "%~f0" "%%a" > "[decrypt]%%~na.txt"
  6. )
  7. )
  8. pause
  9. exit
  10. */
  11. var fso=new ActiveXObject('Scripting.FileSystemObject'),key='',result=[];
  12. var ws=new ActiveXObject('Wscript.Shell');
  13. var f=fso.OpenTextFile(WSH.Arguments(0), 1);
  14. while(!f.AtEndOfStream){
  15.     var line=f.ReadLine();
  16. if(!/cls|>nul|BatchEncryption Build/i.test(line)){
  17. var tmpline=crack(line, key);
  18. result.push(tmpline);
  19.     }
  20. }
  21. WSH.echo(result.join('\r\n'));
  22. WSH.Quit();
  23. function crack(s, k){
  24. var kw=k;
  25.     var m1=s.match(/%[^%:]+?:~-?\d*,1%/g);
  26.     if(m1){
  27.         for(var i=0;i<m1.length;i++){
  28.          var m2=m1[i].match(/%([^%:]+?):/);
  29.          if(m2){
  30.          if(m2[1] != "'"){
  31. kw=ws.ExpandEnvironmentStrings(m1[i].replace(/:.+$/, '')+'%');
  32.          }else{
  33.          kw=k;
  34.          }
  35.          }
  36.          var n=m1[i].replace(/^%.+?:~(-?\d*).+$/, '$1');
  37.          if(n=='')n=0;
  38.          var s=s.replace(m1[i], n=='-1'?kw.slice(Number(n)):kw.slice(Number(n), Number(n)+1));
  39.         }
  40.     }
  41. var m3=s.match(/^@set '=\^">nul&.+?&@set '=(.+?)&@set.+?&@echo "$/);
  42.     if(m3){key=m3[1].replace(/\^{3}/g, '^');}
  43.     return s;
  44. }
复制代码

TOP

返回列表