Introdução
O Alterna Data Stream permite que um arquivo ou diretório tenha algo além de seu conteúdo principal, como informações sobre sua origem, ícones, fontes, etc.
Alternate Data Stream ou ADS é uma característica do sistema de arquivos , que permite que um arquivo tenha múltiplos streams de dados.
Este conteúdo adicional é quase um novo arquivo, que possui seus próprios atributos. Ao mesmo tempo, ele compartilha vários atributos, como descritor de segurança, com seu arquivo “pai”.
Data Stream Padrão - na prática
A convenção criada para fazer referência a um stream específico em um arquivo, consiste no seguinte nome do arquivo:nome do stream:tipo de stream
exemplo.txt::$DATA
exemplo.txt:stream1
exemplo.txt:stream2
Imagine um arquivo de texto, chamado exemplo1.txt
cuja escrevi “Ola Mundo!” e um outro arquivo exemplo2.txt
, por enquanto, vazio. O texto que digitei no notepad, será direcionado para o data stream padrão, pois o explorer está dizendo para abrir desta forma!

Podemos usar o Powershell com o comando Get-Item -path exemplo?.txt -stream *
(Figura 4) ou o cmd com o comando dir /R
que irá mostrar os arquivos com streams alternativos, e seus nomes.

Na imagem, temos exemplo1.txt::$DATA
, que se comparado ao formato que descrevi, falta o nome do stream, no meio, entre ::
e por essa razão, este data stream primário, também é chamado stream não nomeado.
Data Stream Alternativo
No NTFS temos o Alternate Data Stream, que nos permite armazenar dados em outros streams adicionais.
Com o comando echo
vamos usar o formato dito anteriormente para criar o data stream adicional chamado galodoido
no arquivo exemplo2.txt
que receberá o texto pamonha
.

Como o data stream padrão ainda esta vazio, o explorer continuara achando que o arquivos esta vazio. Achamos então, uma forma esconder dados usando as características do ADS!
Para ler o conteúdo do stream galodoido
temos algumas possibilidades:
Get-Content -path .\exemplo2.txt -stream galodoido
notepad.exe exemplo2.txt:galodoido
more exemplo2.txt:galodoido

Para finalizar, no final, o que temos é o seguinte, dados armazenados e separados por streams:

Atualizado
Isto foi útil?