Я скрываю аудио / видео файлы в альтернативных потоках данных (ADS), используя следующую команду

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

При попытке извлечь аудио / видео файл обратно из ADS или, другими словами, чтобы извлечь файл обратно из ADS и поместить его обратно в обычный файл, я использую команду "cat"

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

Приведенная выше команда при выполнении в Windows Powershell извлекает файл, но этот файл не открывается или не воспроизводится успешно. Плюс его размер становится почти вдвое больше при поиске.

Кто-нибудь имеет право голоса по этому поводу?

2 ответа2

1

По умолчанию 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))
1

Следующие две команды powershell сделают дело.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .