Destruindo arquivos no Windows

18

Existe um comando / utilitário cmd interno no Windows que pode destruir arquivos (excluir e substituir com dados aleatórios) sem a necessidade de usar software de terceiros? No Linux eu usaria shred. É uma ferramenta maravilhosa que não apenas exclui arquivos, mas também destrói qualquer "resíduo" deixado no disco, substituindo os dados.

Tawfik Khalifeh
fonte
Eu nunca ouvi falar de nada "embutido" no Windows. Um grande problema é que, se você tentar sobrescrever o arquivo, o sistema de arquivos poderá alocar a versão "substituída" em um espaço diferente do original, deixando o original intocado. Portanto, é preciso algum entendimento significativo de baixo nível do sistema específico e de sua configuração. (E isso é duplamente verdadeiro se o "disco" é um SSD.)
Daniel R Hicks
2
Microsoft oferece um programa de complemento (SDelete) que se estende desde a linha de comando .... technet.microsoft.com/en-us/magazine/dd334519.aspx
Moab
O Sdelete também pode ser script ... forum.sysinternals.com/topic6065.html
Moab
@Moab Esse programa, de acordo com a capa, substitui o espaço livre - não exatamente a mesma coisa.
Daniel R Hicks
1
@DanH é mais poderoso do que isso ... brighthub.com/computing/smb-security/articles/46693.aspx
Moab

Respostas:

8

Provavelmente não. A menos que eles tenham adicionado um no Win 8

Recentemente, comprei um novo PC com o Win 7, o fabricante empacotou um aplicativo triturador de terceiros. Eu deduzo que ou não existe um como padrão (e nunca ouvi falar de um) ou (menos provável?) Que o fabricante adicionou alguns bloatware desnecessários sem a tira usual de justificativa.

É difícil provar um resultado negativo.


Notas:

  1. O Shred substitui apenas um arquivo, não procura fragmentos e cópias dos dados no espaço em disco não alocado (causado pela edição, etc.).

  2. Você não precisa substituir um arquivo mais de uma vez. As declarações em contrário foram completamente desmascaradas há muito tempo.

  3. Não importa o que você substitui.

Portanto, basta copiar um arquivo suficientemente grande, mas inócuo por cima, suficiente.


Atualizar

Você pode excluir o arquivo e usar o código

  1. Saia de todos os programas.
  2. Clique em Iniciar, clique em Executar, digite cmd e pressione ENTER.
  3. Digite cipher / w: driveletter: \ foldername e pressione ENTER. Especifique a unidade e a pasta que identifica o volume que contém os dados excluídos que você deseja substituir. Os dados que não são alocados para arquivos ou pastas serão substituídos. Isso remove permanentemente os dados. Isso pode levar muito tempo se você estiver substituindo um espaço grande.

Provavelmente é mais rápido copiar apenas um arquivo grande sobre o arquivo sensível, mas é mais seguro limpar o espaço não alocado.

RedGrittyBrick
fonte
1
boa abordagem, eu costumava fazer exatamente isso, depois de usar algumas ferramentas profissionais de recuperação de dados, como o recovermyfiles do GetData , criei um pequeno programa c # que cria dados fictícios, especificando o tamanho, para derrotar essas ferramentas. obrigado por sua ajuda, eu gostaria de poder votar, mas eu não posso, (ainda novo para super usuário). Saudações.
Tawfik Khalifeh
1
Interessante, eu aprendi algo hoje. Obrigado por isso!
Mark Allen
Pergunta rápida. Se eu excluir alguns arquivos, digamos dentro C:\Downloads\Goat-picse dentro C:\Download\favicons\potato-iconse, em seguida, execute cipher /w:C:\Downloadsele abrangerá ambas as unidades? ou ele precisa ser executado nessas pastas diretamente?
PsychoData
@ PsychoData: se as fotos de cabras e os ícones de batata estiverem em volumes separados, você precisará executar a cifra em cada volume separadamente. Caso contrário, você só precisará executá-lo uma vez no volume que contém as duas pastas. Para a maioria dos usuários domésticos, é improvável que haja vários volumes ou pontos de montagem em C: - nesse caso, a cifra poderia ser usada apenas em C :. Afinal, o espaço "vazio" (incluindo fragmentos de arquivos excluídos) pertence à unidade / volume e não à pasta.
RedGrittyBrick
1
Você não pode simplesmente "copiar um arquivo grande sobre o arquivo sensível". Como seu editor pode criar um novo arquivo com o novo conteúdo e simplesmente desvincular as referências antigas. Porque o sistema de arquivos pode simplesmente alocar novo fragmento em vez de substituir os mais antigos. Como o hardware pode estar alocando os blocos em outro lugar, em vez de substituí-los (principalmente no SSD para desempenho e nível de desgaste). Finalmente os dados ainda pode estar lá no disco (por exemplo, instantâneos)
Huygens
8

O CCleaner do Piriform oferece uma opção para eliminar o espaço livre. O File Shredder permite apagar um arquivo específico "na hora da exclusão"

** EDIT: Encontrei algo nos sysinternas do MS. SDelete . Ainda não tentei, mas poderia tentar.

Alfabravo
fonte
já o uso há 6 anos :-), só quero ter certeza de que não há um padrão da Microsoft para realizar uma tarefa tão sensível.
Tawfik Khalifeh
Encontrei outra coisa. Dê uma olhada para ver se ajuda
Alfabravo
já o verificou, dado pelo @Moab nos comentários acima, achou útil, obrigado pelo seu interesse.
Tawfik Khalifeh
1
@sarepta O MS não é bom em fornecer ferramentas padrão para tarefas comuns. Mesmo quando isso acontece, as ferramentas de terceiros geralmente são melhores. O Windows é uma plataforma em que você não deve se preocupar muito com a maneira "oficial" de fazer as coisas.
Isaac Rabinovitch
@IsaacRabinovitch de fato. De qualquer forma, o material da sysinternal geralmente resolve essas necessidades.
Alfabravo
2

Não é nativo do Windows, mas provavelmente já está instalado para muitas pessoas que leem esta pergunta: O Git for Windows vem com suas próprias portas de muitos utilitários Unix comuns, incluindo shred. Por padrão, ele está localizado em C:\Program Files\Git\usr\bin\shred.exe.

O uso é o mesmo que no Unix-like, por exemplo C:\"Program Files"\Git\usr\bin\shred.exe myfile.txt

Joseph Montanaro
fonte
1

Se você considera o Powershell embutido, é possível escrever um script, talvez usando Get-Randompara substituir o conteúdo de um arquivo com valores aleatórios, antes de excluí-lo.

Essa pergunta de estouro de pilha pode ser útil.

Dominique Jacquel
fonte
tenha um programa funcional completo de c #, se desejar (é um programa pequeno, não completo).
Tawfik Khalifeh
0

SDelete é o mais próximo do nativo que eu já encontrei.

Ele não possui instalador; portanto, se você simplesmente extrair os arquivos para o seu próprio diretório em Arquivos de Programas, adicionar isso ao seu PATH, poderá usá-lo na linha de comando como faria del. Ele pode excluir recursivamente e destruir o conteúdo e o nome do arquivo.

Na primeira vez em que é executado, ele mostra um diálogo "Concordo com os Termos", portanto, execute-o uma vez antes de criar um script.

Walf
fonte