Spaces:
Sleeping
Sleeping
File size: 3,344 Bytes
55401d6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
Add-Type -AssemblyName "System.IO.Compression"
$compressionTypes = 'Gzip', 'Deflate'
$method = ""
$decode_command = @"
function Decode-Code(`$compressedBytes, `$compressionPick) {
[System.IO.MemoryStream] `$input1 = New-Object System.IO.MemoryStream
`$input1.Write(`$compressedBytes, 0, `$compressedBytes.Length)
`$input1.Seek(0, [IO.SeekOrigin]::Begin)
`$compressionStream = $null
`$reader = $null
`$decompressedData = $null
if (`$compressionPick -eq 'Gzip') {
`$compressionStream = New-Object System.IO.Compression.GzipStream `$input1, ([IO.Compression.CompressionMode]::Decompress)
} elseif (`$compressionPick -eq 'Deflate') {
`$compressionStream = New-Object System.IO.Compression.DeflateStream `$input1, ([IO.Compression.CompressionMode]::Decompress)
}
`$reader = New-Object System.IO.StreamReader `$compressionStream
`$decompressedData = `$reader.ReadToEnd()
`$reader.Close()
`$compressionStream.Close()
`$input1.Close()
return `$decompressedData
}
"@
function Read-And-Interpret-Script($scriptPath) {
$scriptContent = [System.IO.File]::ReadAllBytes($scriptPath)
$compressionPick = $compressionTypes | Get-Random
$encodedScriptContent = Encode-Code -code $scriptContent -compressionPick $compressionPick
Write-Host "Encoded Script Content:"
Write-Host $encodedScriptContent
$decodedScriptContent = Decode-Code -compressedBytes $encodedScriptContent -compressionPick $compressionPick
Write-Host "Decoded Script Content:"
Write-Host $decodedScriptContent[1]
}
function Obfuscate-Code($code) {
$obfuscatedCode = $code
return $obfuscatedCode
}
function Encode-Code($code, $compressionPick) {
[System.IO.MemoryStream] $output = New-Object System.IO.MemoryStream
$compressionStream = $null
if ($compressionPick -eq 'Gzip') {
$compressionStream = New-Object System.IO.Compression.GzipStream $output, ([IO.Compression.CompressionMode]::Compress)
} elseif ($compressionPick -eq 'Deflate') {
$compressionStream = New-Object System.IO.Compression.DeflateStream $output, ([IO.Compression.CompressionMode]::Compress)
}
$compressionStream.Write($code, 0, $code.Length)
$compressionStream.Close()
$compressedBytes = $output.ToArray()
$output.Close()
return $compressedBytes
}
function Decode-Code($compressedBytes, $compressionPick) {
[System.IO.MemoryStream] $input1 = New-Object System.IO.MemoryStream
$input1.Write($compressedBytes, 0, $compressedBytes.Length)
$input1.Seek(0, [IO.SeekOrigin]::Begin)
$compressionStream = $null
$reader = $null
$decompressedData = $null
if ($compressionPick -eq 'Gzip') {
$compressionStream = New-Object System.IO.Compression.GzipStream $input1, ([IO.Compression.CompressionMode]::Decompress)
} elseif ($compressionPick -eq 'Deflate') {
$compressionStream = New-Object System.IO.Compression.DeflateStream $input1, ([IO.Compression.CompressionMode]::Decompress)
}
$reader = New-Object System.IO.StreamReader $compressionStream
$decompressedData = $reader.ReadToEnd()
$reader.Close()
$compressionStream.Close()
$input1.Close()
return $decompressedData
}
$scriptPath = "example\test.ps1"
Read-And-Interpret-Script -scriptPath $scriptPath |