【发布时间】:2017-07-24 08:50:50
【问题描述】:
我有一个 .NET exe 文件,我想将其编码为 Base-64 字符串,然后使用 Powershell 从 Base64 字符串解码为 .exe 文件。
到目前为止,我所拥有的生成了一个 .exe 文件,但是,Windows 无法将该文件识别为可以运行的应用程序,并且始终与我的文件长度不同m 传入编码脚本。
我想我可能在这里使用了错误的编码,但我不确定。
编码脚本:
Function Get-FileName($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "All files (*.*)| *.*"
$OpenFileDialog.ShowDialog() | Out-Null
$FileName = $OpenFileDialog.filename
$FileName
} #end function Get-FileName
$FileName = Get-FileName
$Data = get-content $FileName
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Data)
$EncodedData = [Convert]::ToBase64String($Bytes)
解码脚本:
$Data = get-content $FileName
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($Data)
$EncodedData = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($Bytes))
$EncodedData | Out-File ( $FileName )
【问题讨论】:
标签: powershell base64 encode binaryfiles