sexta-feira, 17 de junho de 2011

Desocultando arquivos ocultados por vírus no Windows

Essa postagem deveria ter sido feita desde o ano passado, só que por algum motivo eu sempre esquecia. Então encontrei um arquivo texto no meu computador que tinha alguns comandos para Windows e lembrei de postar aqui.

Em uma época distante (não muito distante, ano passado) os desktops dos usuários de onde eu trabalhava pegaram um vírus muito chato. Ele ocultava arquivos e pastas e no lugar deles, criava um atalho com o nome desses mesmos arquivos. Só que o atalho era para o próprio vírus, que acabava fazendo a mesma coisa e por aí não terminava nunca. Se o usuário não soubesse a sutil diferença que um atalho tem em relação a um arquivo comum (aquela setinha do lado esquerdo do ícone), ele clicava no atalho e piorava a situação.


Também acontecia muito em pen drives e aí que eu comecei a procurar uma soluçãopara desocultar esses arquivos. Porque mesmo que você visse o arquivo oculto, não era possível desocultá-lo clicando com o botão direito nele e indo em propriedades, a caixa de seleção ficava indisponível.

Bom, a solução é:

Abra o CMD
Entre na pasta com o comando CD nome_completo_da_pasta
Digite attrib -A -S -R -H /S /D
Depois disso, os arquivos estarão visíveis novamente.
Caso esteja na raiz de algum HD ou na raiz o pen drive mesmo, abra o bloco de notas e copie isso nele:

echo off
cls
set /p uni=Digite a letra da unidade ou 0 para encerrar:
if %uni% EQU 0 exit
set pen=%uni%:
%pen%
echo Desocultando arquivos e pastas, aguarde...
attrib -A -S -R -H /S /D
echo Desocultamento de arquivos finalizado!
pause

Salve como desocultar_arquivos.bat e execute-o. Ao abrir ele mostrará o seguinte:
Digite a letra da unidade ou 0 para encerrar:

Digite apenas a letra da unidade, sem os dois pontos. C, D, E e não C: ou C:\.
Aguarde um momento e quando terminar, o script mostrará a seguinte informação:
Desocultamento de arquivos finalizado!
Pressione qualquer tecla para continuar...

Após isso os seus arquivos não estarão mais  ocultos naquela pasta.

Atualização

Em um dos comentários, pediram para eu explicar o script. Achei uma boa idéia, então farei a explicação de cada linha dele. Porém explicarei apenas o que significa nesse script, alguns comandos tem várias utilidades além das citadas aqui.

1 - O comando echo off significa que ele não vai ficar mostrando a linha que está executando o prompt, no caso o "C:\Users\Usuario>". No caso ele só mostrará o resultado dos comandos digitados.

2 - cls serve para limpar a tela, útil usar depois do echo off para deixar a tela limpa para executar o resto do script.

3 - O "set /p uni" serve para criar a variável "uni" e já mostrar um texto para o usuário digitar o valor da variável.

4 - O if serve para testar a condição, no caso se a pessoa digitar o valor 0, ela sai do script, caso contrário continuará no script, sendo assim a pessoa vai digitar a letra da unidade que quer fazer o desocultamento das pastas.

5 - Esse comando é um pouco desnecessário, só fiz atribuir uma variável e os dois pontos a outra variável. Funcionaria sem ela se eu colocasse apenas na próxima linha "%uni%:".

6 - Entro na unidade que quero desocultar as pastas, se a pessoa tivesse digitado "D" no início do script, então entraria na unidade D:\.

7 - O echo é só pra mostar uma informação para o usuário enquanto o desocultamento está sendo realizado.

8 - Nesse comando temos várias opções. O attrib serve para adicionar ou remover atributos para uma pasta ou arquivo. Vamos para cada um deles. Lembrando que o sinal de + serve para adicionar o atributo e o sinal de - para remover o atributo.
A - Atributo de arquivo morto, usado para backups (não vem ao caso explicar, mas é fácil encontrar explicações)
S - Atributo de arquivo de sistema
R - Atributo de somente leitura
H - Atributo de arquivo oculto
/S - Definir os atributos em arquivos localizados em subpastas
/D - Definir atributos para pastas também

9 - Echo

10 - Pause serve para que a tela fique aguardando o usuário apertar alguma tecla para encerrar o script. É útil quando existe alguma informação na tela para que o usuário leia antes da janela ser fechada.

Nesse caso, onde tem o sinal de - serve para remover esses atributos e então será possível tanto visualizar os arquivos e pastas quanto apagá-los ou editá-los.

24 comentários:

  1. Muito bom quando se encontra alguém que realmente entende do assunto. Isso realmente funcionou e me surpreendeu pela simplicidade da solução do problema.

    ResponderExcluir
  2. Muito bom amigo, salvou a minha vida! obrigado. Funciona perfeitamente.

    ResponderExcluir
  3. Muito bom o site, me ajudou bastante, obrigado pela valiosas instruções.

    ResponderExcluir
  4. esste aqrquivo é demais....

    ResponderExcluir
  5. Só o pilpes esse tuto, funcionou blz o .bat

    Show de bola

    ResponderExcluir
  6. MTO BOM AMIGO..
    VC FOI BASTANTE ÚTIL.
    CONTINUE SEU TRABALHO ESPALHANDO SEU CONHECIMENTO.
    BOA SORTE AMIGO

    ResponderExcluir
  7. Olá amigo, muito obrigado pelo executável, sou professor de faculdade e o NTI não conseguiu tirar esse vírus do sistema aqui.
    Valeu mesmo!

    ResponderExcluir
  8. Obrigado, ficou na perfeiçao... quem sabe sabe
    ^^

    ResponderExcluir
  9. Show de bola... Muito bom! ^^

    ResponderExcluir
  10. Funcionou perfeitamente Parabens pelo post..

    ResponderExcluir
  11. VC PODERIA EXPLICAR ESSE SCRIPT?


    PARABENS!

    ResponderExcluir
    Respostas
    1. Oi Anônimo, coloquei a explicação de cada linha na própria postagem. Obrigado pela idéia!

      Excluir
  12. Caramba não estava acreditando que daria certo.

    Valeu mesmo cara!

    ResponderExcluir
  13. Cara, você salvou demais! tive arquivos importantes afetados e com seu comando consegui recuperar. Estava quase formatando já! muito obrigado!

    ResponderExcluir
  14. Que maravilha!! Você é dimais cara! Valeu mesmo, salvou a minha vida!!

    ResponderExcluir
  15. ola Rodrigo, muito boa a sua postagem,
    teria como colocar uma exceção caso o usuario digitasse "C" para encerrar.
    pois eu uso um script para apagar o que tem dentro do pendrive
    e junto com esse seu script ficaria muito bom, Porem se o usuario
    digitasse "C", iria apagar os arquivos do Sistema Operacional.

    ResponderExcluir
    Respostas
    1. Oi Rafaella,

      Não tenho como testar se dará certo agora, mas acredito que você acrescentando mais uma linha do tipo:
      if %uni% EQU C exit
      embaixo do
      if %uni% EQU 0 exit
      vai funcionar

      Excluir
  16. Opa, ótimo post, agradeço imensamente pela dica, me poupou um bom tempo.

    ResponderExcluir
  17. Muito bom cara. Resolveu meu problema certinho e rápido. Parabéns e obrigado!!!

    ResponderExcluir
  18. OBRIGADA!!! Salvou a minha vida!!! ^.^ Parabéns pelo trabalho!!!

    ResponderExcluir
  19. Funcionou certinho!!! Muito obrigado :)

    ResponderExcluir