Como a Lixeira funciona?

29

O que a Lixeira do Windows realmente faz? É apenas uma pasta glorificada e um local de espera para arquivos excluídos em breve, ou faz algo específico? Especificamente, os arquivos "movidos" para a Lixeira realmente foram movidos no disco rígido ou apenas os ponteiros dos arquivos foram movidos? Sou um usuário bastante experiente, só queria uma explicação mais aprofundada da Lixeira.

Jonathon
fonte
3
Esta é realmente uma pergunta interessante. Se a lixeira fosse simples, não levaria uma eternidade para adicionar uma pasta com alguns milhares de arquivos.
Daniel Beck
3
Comece com o artigo da Wikipedia .
William Jackson
1
A melhor informação é sempre das pessoas que realmente escrevem o software de recuperação: pandorarecovery.com.br/knowledge_base/general/recycler.php . E também ver dereknewton.com/2010/06/... e linuxsleuthing.blogspot.sg/2009/10/... e cybersecurityinstitute.biz/INFO2.htm
Pacerier

Respostas:

32

A referência é removida, um arquivo de metadados é mantido na Lixeira para saber o local original.

Nos primeiros dias, no Windows 95 e 98, ele estava localizado em \RECYCLED. No Windows 2000 e posterior, ele foi renomeado para \RECYCLER. Desde o Windows Vista, agora é uma pasta especial chamada \$Recycle.Bin.

Use o Process Monitor para ver a E / S sob o capô, coloque um filtro Recycle.Bine visite-o. :)

Por exemplo, quando faço isso:

notepad \$RECYCLE.BIN\S-1-5-21-0192837465-987654321-0123456789-1000\$EXAMPL5

Nota: O nome longo da pasta é um SID do usuário . O último nome da pasta é um hash com base nos metadados.

Eu recebo um arquivo que contém informações de metadados como este:

                Ö¸ÌC : \ P a t h \ T o \ S o m e \ E x a m p l e . t x t

O motivo pelo qual o caminho do arquivo possui espaços intermediários é porque ele é armazenado em caracteres de bytes largos, para suportar caracteres especiais para determinados idiomas, além de unicode e o que mais. Os símbolos anteriores são binários e contêm informações como o tamanho e as permissões do arquivo, além de um ponteiro para os dados do arquivo. Em essência, contém informações suficientes para reconstruir a referência original ...

É triste que o livro Windows Internals não cubra isso, ou eu teria mais referências. Não encontrei nenhum artigo detalhado sobre isso, nem pela Microsoft nem por terceiros. Provavelmente existem, mas achei mais fácil fazer engenharia reversa do conceito principal ...

Tamara Wijsman
fonte
Bom, acabei de descobrir da maneira mais difícil exatamente o que você postou. Você tem alguma idéia de como encontrá Example.txt-lo no prompt de comando? Meu caso de uso é procurar um arquivo fora de lugar na unidade inteira, dir c:\*.doc* /a/smas ele não encontra nenhum documento na lixeira devido à renomeação e ao nome real sendo mantidos nesse arquivo de metadados.
Lieven Keersmaekers
Isso provavelmente envolverá o findstr para saudar o conteúdo da lixeira. Não sei como.
Tamara Wijsman
Provavelmente mais fácil de atualizar minhas expectativas de dir /a/s:). tx Tom.
Lieven Keersmaekers
@ TomWijsman, Estranho, eu posso realmente mudar o nome C:\$Recycle.Bin(tentei no win8)! É seguro fazer isso?
Pacerier