Powershell - Encoding and using encoded code in Powershell

To support me, you can subscribe to the channel, share and like the videos, disable your ad blocker or make a donation. Thank you!

Hello,

If you want to obfuscate Powershell code you can encode it and use it with the -EncodedCommand argument to the Powershell.exe command.

# Encode a command : Text -> Bytes -> Base64
# Command definition
$commands = '1..5 | Foreach-Object -Process { "Vive Moi!" }'
# Text -> Bytes
$bytes = [System.Text.Encoding]::Unicode.GetBytes($commands)
# Bytes -> Base64
$encodedString = [Convert]::ToBase64String($bytes)
# Display the encoded value
$encodedString
# Copy the value to the clipboard
$encodedString | Set-Clipboard
# Use the encoded command (in unicode) in Powershell
PowerShell -EncodedCommand MQAuAC4ANQAgAHwAIABGAG8AcgBlAGEAYwBoAC0ATwBiAGoAZQBjAHQAIAtAFAAcgBvAGMAZQBzAHMAIAB7ACAAIgBWAGkAdgBlACAATQBvAGkAIQAiACAAfQA=
# Reconvert to string
[System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($encodedString))

Related links