Onde o Windows 7 armazena informações de “aviso” sobre um .LNK? (E como remover o aviso)

1

Eu tenho um programa instalado. Não importa realmente qual.

Se eu clicar duas vezes no arquivo executável, ele será iniciado sem problemas.

Se eu criar um link em uma barra de tarefas ou na barra de menus, clicar no link abrirá uma caixa de diálogo de aviso: "Abrir arquivo - Aviso de segurança" detalhando que "Embora arquivos da Internet possam ser úteis, esse tipo de arquivo pode prejudicar seu computador ".

Sei que posso livrar-se do aviso , mas eu não quero remover a segurança de todos links. Apenas a partir de este , e quero conceder acesso ao UAC quando o fizer. Depois disso o link deve ser examinado e aberto sem mais demoras ever .

Se eu criar o link na área de trabalho, e depois copiá-lo na barra de menus e, em seguida, mover o link na mesma barra de menu, acabarei com dois links na mesma barra de menu.

O primeiro abre o diálogo. O segundo não: ele abre diretamente o aplicativo.

Nesse ponto, fiquei curioso: qual é a diferença entre os dois arquivos?

  • nome do arquivo: no.
  • conteúdo do arquivo: nenhum. Eles têm o mesmo hash MD5.
  • atributos: sem alegria, eles têm atributos idênticos.
  • talvez um fluxo de dados alternativos? Poderia ter sido - mas não é. Nenhum arquivo .LNK tem ADS anexado.
  • no registro? Faz pouco sentido, mas novamente parece não haver nada no registro para esse efeito.
  • Metadados da MFT? Eu tentei usar esta ferramenta e possivelmente cometi algum erro, mas eu não achei nada óbvio (eu sou não tenho tanta certeza de que não havia, lembre-se você).

Eu tentei espiar os metadados $ MFT e descobri uma diferença, da qual não sei o significado, entre os campos "Informações gerais" dos dois arquivos. O NTFS Explorer relata as seções como idênticas; na verdade eles não são. Após os campos de data e os atributos do DOS, existem duas sequências hexadecimais diferentes:

File1
00 00 00 00 88 03 00 00 00 00 00 00 00 00 00 00 
10 45 41 22 00 00 00 00

File2
00 00 00 00 A6 03 00 00 00 00 00 00 00 00 00 00 
18 44 41 22 00 00 00 00

Se a diferença tivesse sido apenas um pouco, eu teria certeza, mas não é o caso. Eu não estou muito otimista sobre modificar o $ MFT aleatoriamente para ver o que acontece - eu estou um pouco assustado com o que pode acontecer. E além disso, parece tolo para mim que uma operação não razoável (" remover o aviso deste link aqui "), para o qual existe mesmo uma solução encontrada fácil (" criar o link em a área de trabalho e mover de lá para onde realmente precisava ir ") deve ser tão complicado e até mesmo precisar de uma ferramenta de terceiros.

Espero que haja alguma ferramenta ou procedimento incluído para o mesmo efeito, para permitir a edição deste misterioso e indescritível sinalizador "Aviso da Internet".

Então onde é armazenado? E existe uma maneira simples de removê-lo (da próxima vez)?

    
por LSerni 19.03.2015 / 23:57

1 resposta

1

A informação estava realmente na zona DACL e pode ser editada a partir da linha de comando usando a ferramenta apropriada .

Isso remove o aviso de "filename.lnk" (deve ser executado a partir do shell de comando, eu uso o CMD por causa do antigo):

ICACLS filename.lnk /SetIntegrityLevel M /L

Uma árvore de diretórios inteira pode ser tratada com

ICACLS *.lnk /T /L /SetIntegrityLevel M

correu a partir da pasta raiz.

Eu acho que seria possível criar uma operação de shell ("Desbloquear") que poderia executar o comando ICACLS ao clicar com o botão direito do mouse em um arquivo .LNK. Um tutorial inicial pode ser encontrado aqui (Vista, mas o Seven não deve ser muito diferente).

Criar comando de menu "Desbloquear"

  1. Abra o utilitário REGEDIT . Cuidado usual se aplica. REGEDIT pode destruir seu sistema!
  2. Abra o HKEY_CLASSES_ROOT hive.
  3. Localize a entrada lnkfile .
  4. Clique com o botão direito do mouse em lnkfile e escolha "New > Key".
  5. Crie uma nova chave chamada "shell".
  6. Repita as etapas acima para criar uma chave chamada "Desbloquear" dentro do "shell".
  7. Repita o procedimento acima para criar um "comando" dentro de "Desbloquear"
  8. Edite o valor Padrão da chave Desbloquear para que ele seja lido

    CMD.EXE /S /C "ICACLS %1 /L /SetIntegrityLevel med"
    

Fechar REGEDIT .

Agora localize o LNK que estava causando problemas. Clique com o botão direito nele; você deve poder ver uma entrada "Desbloquear" no menu. Selecione-o.

Um prompt do UAC aparece que precisa ser confirmado, e um aviso também pode aparecer para verificar se você realmente está certo de fazer isso.

Agora, se você clicar duas vezes novamente no link, o aplicativo será iniciado sem mais problemas. Se você tiver um aviso do UAC e não um aviso de abertura de arquivo , o procedimento acima não será suficiente. Você também precisa clicar com o botão direito do mouse no link e, em suas propriedades, escolher "Executar como administrador" (talvez seja necessário fazer o mesmo com o próprio aplicativo).

Testado e trabalhando no Windows 7 Pro e Ultimate.

    
por 19.03.2015 / 23:57