Retreender um arquivo de um fluxo de dados alternativo através do comando “cat”

0

Estou escondendo arquivos de áudio / vídeo em fluxos de dados alternativos (ADS) usando o seguinte comando

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

Ao tentar recuperar o arquivo de áudio / vídeo do ADS, ou em outras palavras, para recuperar o arquivo de um ADS e colocá-lo de volta em um arquivo normal, eu uso o comando "cat"

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

O comando acima, quando executado no Windows Powershell, recupera o arquivo, mas esse arquivo não abre ou reproduz com êxito. Além disso, seu tamanho se torna quase o dobro na recuperação.

Alguém tem algo a dizer sobre isso?

    
por Khaula 22.12.2016 / 08:28

2 respostas

1

Os dois comandos do Powerhell a seguir executam a ação.

$a = Get-Content f:\MainFile.txt:HANDS.3gp -Encoding Byte -ReadCount 0
Set-Content f:\HANDS.3gp -Encoding Byte -Value $a
    
por 20.01.2017 / 07:45
1

Por padrão, cat ( Get-Content ) assume que o conteúdo do arquivo é texto, especificamente UTF-16LE. Arquivos binários como MP3s serão desconfigurados quando suposições para manuseio de texto forem aplicadas a eles.

O type do processador de comandos preserva os bytes, portanto, você pode manter essa parte. Para extrair o arquivo usando o PowerShell, você deve ter o cuidado de trabalhar com bytes:

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

Tags