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, purchase my 3D plans, or make a donation or subscribe on Ko-Fi. 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