通过“cat”命令从备用数据流中检索文件

通过“cat”命令从备用数据流中检索文件

我使用以下命令将音频/视频文件隐藏在备用数据流 (ADS) 中

F:\>type "Message.mp3">"MainFile.txt:Message.mp3"

在尝试从 ADS 中检索音频/视频文件时,或者换句话说,从 ADS 中吸出文件并将其放回常规文件中时,我使用“cat”命令

cat "f:\MainFile.txt:Message.mp3">"Message.mp3"

在 Windows Powershell 中执行上述命令时,会检索文件,但该文件无法成功打开或播放。此外,检索后其大小几乎增加一倍。

有人对此有发言权吗?

答案1

以下两个 powershell 命令将完成此任务。

$a = Get-Content f:\MainFile.txt:HANDS.3gp -Encoding Byte -ReadCount 0
Set-Content f:\HANDS.3gp -Encoding Byte -Value $a

答案2

默认情况下,cat( Get-Content) 假设文件内容为文本,具体来说是 UTF-16LE。当对 MP3 等二进制文件应用文本处理假设时,它们将受到破坏。

命令处理器type会保留字节,因此您可以保留该部分。要使用 PowerShell 提取文件,您应该小心处理字节:

[IO.File]::WriteAllBytes('C:\full\path\to\output.mp3', (cat 'F:\MainFile.txt:Message.mp3' -Encoding Byte))

相关内容