I want to encode a powershell script from string, but I can't get it to be encoded in UTF16-LE.
I am using this to encode it to base64 string.
string encodedscript = "powershell -nop -enc " + Convert.ToBase64String(Encoding.UTF8.GetBytes(PowerShellScript));
But when i try to use UTF16-LE encoding, it does not work, for example:
string encodedscript = "powershell -nop -enc " + Convert.ToBase64String(Encoding.UTF16-LE.GetBytes(PowerShellScript));
So my question is how do i encode Powershell script using c# so it will be acceptable by powershell.
I am trying to achieve something like on this website in C#: https://raikia.com/tool-powershell-encoder/
This is code example, the powershell script PowerShellScript is extremly long.
Here is some example encoded script: https://pastesite.org/view/raw/74b98937
Example script: https://pastesite.org/view/raw/b573f289
Encoding.UnicodeRwBlAHQALQBEAGEAdABlAA==) to PowerShell[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("Get-Date"))it gives me an equal result. That would mean in C#Convert.ToBase64String(Encoding.Unicode.GetBytes(PowerShellScript))would do the same I guess ? See also this answerPowerShellScriptis, if and how you read it from disk and so on.