返回列表 发帖
回复 14# 304802301


    将7楼代码第22行换成下面的 ,因为使用的是字符串 ,base64解码后涉及字符串编码问题 ,简单的判断了下编码
$pw="";if($str -match '(?<=uniquecode=")[^"]*(?=")'){
if($Matches[0]){$pw=$matches[0];$o=$pw.Length%4
if($o){$pw=$pw+'===='.Substring(0,4-$o)}
$pwdc=[text.encoding]::utf8.getstring([convert]::FromBase64String($pw))
if($pwdc -match '\?'){
write-host "密码的编码可能不是utf8 ,将使用默认编码" -ForegroundColor yellow
$pwdc=[text.encoding]::default.getstring([convert]::FromBase64String($pw))}
$pw='-p"'+$pwdc+'"'
}}COPY

TOP

啊 ,代码没有排除bat本身 ,bat的名字最好取个唯一的名字 ,也就是说不要有跟bat对应的文件夹

TOP

#ANSI编码&cls&powershell -Version 5.1 -NoLogo -NoProfile -Command "gc -Encoding Oem -ReadCount 0 -LiteralPath '%~f0'|out-string|iex"&pause&exit/b
dir -Directory | %{
    $n = (dir -File ($_.Name + '.*'))[0]
    $f = gc -Encoding UTF8 -Raw $n
    cd $_
    if ($f -match 'UniqueCode="(.*?)"') {
        $p = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Matches[1]))
        & "D:\7za.exe" a ..\tmp.zip ('-p' + $p) * | Out-Null
    } else {
        & "D:\7za.exe" a ..\tmp.zip * | Out-Null
    }
    cd ..
    $b = [System.Convert]::ToBase64String((gc .\tmp.zip -Encoding Byte -Raw))
    $utf8NoBom = New-Object System.Text.UTF8Encoding($false)
    [System.IO.File]::WriteAllText($n, ($f -replace 'Value=""', ('Value="{0}"' -f $b)), $utf8NoBom)
    rm .\tmp.zip
}COPY
楼上大佬写的更好,我抄了一点 ,密码改用了解码后的

TOP

回复 16# Five66


    改一下 ,加上了密码base64解码后包含英文双引号时的处理
将7楼代码第22行换成下面的 ,因为使用的是字符串 ,密码base64解码后可能涉及字符串编码问题 ,简单的判断了下编码
代码没有排除bat本身 ,bat的名字最好取个唯一的名字 ,也就是说最好不要有跟bat对应的文件夹 ,不然对应的文件夹也会压缩处理
$pw="";if($str -match '(?<=uniquecode=")[^"]*(?=")'){
if($Matches[0]){$pw=$matches[0];$o=$pw.Length%4
if($o){$pw=$pw+'===='.Substring(0,4-$o)}
$pwdc=[text.encoding]::utf8.getstring([convert]::FromBase64String($pw))
if($pwdc -match '\?'){
write-host "密码的编码可能不是utf8 ,将使用默认编码" -ForegroundColor yellow
$pwdc=[text.encoding]::default.getstring([convert]::FromBase64String($pw))}
$pwdc=[regex]::replace($pwdc,'\\+"|""+|"',[scriptblock]::create('"\"+($args[0].value.tochararray() -join "\")'))
$pw='-p"'+$pwdc+'"'
}}COPY

TOP

回复 19# Five66


    可用,感谢!

TOP

回复 18# wanghan519


        可用,感谢!

TOP

返回列表