蓝奏云 acw_sc__v2算法解密
易语言代码通过调用DOS进行算法还原,提供arg1 和固定的mask参数 可以正确算出acw_sc__v2
.版本 2
.支持库 spec
.子程序 算法解密, 文本型
.参数 arg1, 文本型
.局部变量 命令行, 文本型
.局部变量 临时文件, 文本型
命令行 = “powershell -Command ”
命令行 = 命令行 + “$arg1='” + arg1 + “';$mask='3000176000856006061501533003690027800375';”
命令行 = 命令行 + “$posList=@(15,35,29,24,33,16,1,38,10,9,19,31,40,27,22,23,25,13,6,11,39,18,20,8,14,21,32,26,2,30,7,4,17,5,3,28,34,37,12,36);”
命令行 = 命令行 + “$stepOrder=@(1,4,3,0,2);$arg2='';foreach($p in $posList){$i=$p-1;if($i-ge0 -and $i-lt$arg1.Length){$arg2+=$arg1[$i];}};”
命令行 = 命令行 + “$arg3='';$minLen=[Math]::Min($arg2.Length,$mask.Length);$n=$minLen/2;”
命令行 = 命令行 + “for($i=0;$i-lt$n*2;$i+=2){$strChar=0;$maskChar=0;$xorStr='';foreach($s in $stepOrder){switch($s){”
命令行 = 命令行 + “1{$sub=$arg2.Substring($i,2);$strChar=[Convert]::ToInt32($sub,16);}”
命令行 = 命令行 + “4{$sub=$mask.Substring($i,2);$maskChar=[Convert]::ToInt32($sub,16);}”
命令行 = 命令行 + “3{$xorChar=$strChar -bxor $maskChar;$xorStr=[Convert]::ToString($xorChar,16).ToLower();}”
命令行 = 命令行 + “0{if($xorStr.Length -eq1){$xorStr='0'+$xorStr;}}”
命令行 = 命令行 + “2{$arg3+=$xorStr;}}}};Write-Output $arg3”
临时文件 = 系统_取DOS执行结果 (命令行, )
临时文件 = 取文本左边 (临时文件, 取文本长度 (临时文件) - 1)
临时文件 = 文本_到小写 (临时文件)
临时文件 = “acw_sc__v2=” + 临时文件
调试输出 (“临时文件” + 临时文件)
返回 (临时文件)
算法解密原创:cencrack