Reparando o IE e rodando programas de forma segura

Por:
Reparando o IE e rodando programas de forma segura
Corrigindo problemas no Internet Explorer

Deu pau no Internet Explorer? Infelizmente isso é comum. Sendo um navegador muito usado, é o alvo predileto de programas do mal, muitas vezes sofre com a simples remoção de algumas chaves do registro. Vou comentar aqui algumas formas de tentar solucionar alguns problemas, dando uma dica de como reinstalar o IE original, diretamente do CD do Windows.

Se a chave do registro “HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Internet Explorer > AdvancedOptions” for deletada, ou algumas de suas subchaves e/ou valores, a guia “Avançadas” das opções da Internet ficará vazia, sem os itens. Veja que estranho:
fig1
Se seu computador está assim, basta registrar novamente o arquivo “inetcpl.cpl” que ele restaura estas chaves, e o problema está solucionado. Vá ao “Iniciar > Executar” e digitar:

regsvr32 /n /i inetcpl.cpl

Se você preferir, pode exportar a chave do registro citada de outro computador (de preferência com a mesma versão do Internet Explorer e do Windows) e importá-la no micro com o problema.

Um outro problema um pouco pior para os usuários é um que atrapalha a navegação: quando há um link em nova janela a janela simplesmente não abre, ou abre em branco, ou é exibida uma mensagem de erro. Links em JavaScript normalmente não funcionam quando o IE está com essa enfermidade também. Ou seja, navegar fica praticamente impossível, já que a maioria dos sites hoje se utilizam de algum recurso em JavaScript, já que é reconhecido e aplicado corretamente por todos os navegadores de respeito (o que não ocorria até alguns anos atrás). Às vezes ainda fica impossível clicar com o botão direito na página, para abrir links em nova janela, ou salvar imagens, por exemplo. Não estou me referindo a restrições impostas pelo administrador não, mas sim de um problema mesmo. Algumas vezes o IE não seleciona textos nas páginas. Outra coisa comum é na tela “Sobre o Internet Explorer”, acessível pelo menu Ajuda: algumas vezes, ao abri-la, é exibida uma mensagem de erro como “Um erro ocorreu nesta caixa de diálogo – Erro: 96 – Erro não especificado”. Algo parecido pode ocorrer também ao pesquisar textos na página atual (com o tradicional CTRL+F) ou ao mandar imprimir a partir do IE. Um outro grande incômodo é a infuncionalidade dos campos de texto: eles podem ficar inativos, sem reconhecer os cliques, sem receber o foco. Assim fica impossível usar sites de busca, entrar no webmail (já que não dará para digitar o nome), etc. Esses e outros problemas menos conhecidos muitas vezes são solucionados re-registrando alguns arquivos do Internet Explorer, já que são causados normalmente por chaves do registro que estão faltando (que foram apagadas, por alguém ou por algum programa), ou com valores incorretos. Além do inetcpl.cpl, tente estes:

Clique em “Iniciar > Executar” ou vá ao prompt de comando, e dê esses comandos:

regsvr32 mshtmled.dll
regsvr32 jscript.dll
regsvr32 /i mshtml.dll

É necessário dar esses comandos como administrador. Se não funcionar, então reinstale o Internet Explorer que provavelmente funcionará (veremos como fazer isso de uma forma diferente). Como diversos programas podem ter interferido no funcionamento do IE, recomendo renomear ou excluir a subchave “Internet Explorer”, das chaves “HKEY_LOCAL_MACHINE > Software > Microsoft” e “HKEY_CURRENT_USER > Software > Microsoft” antes de instalá-lo novamente. Você terá de reconfigurar as opções da Internet, o que não é nenhuma tarefa complicada.

Para testar, removi as chaves citadas e tentei executar o Internet Explorer 6 do Windows XP Service Pack 2 (que não tinha problema nenhum, fiz só para testar). Ele demorou mais para iniciar, restaurou algumas chaves e, aparentemente, funcionou. Apesar disso, a tela das opções da Internet continuou daquele jeito, sem as opções da guia “Avançadas”. Após re-registrar os arquivos citados mais acima com o “regsvr32”, ele voltou ao normal.

O comando “regsvr32” em si não faz praticamente nada, ele apenas chama uma função de nome predeterminado, no arquivo passado como parâmetro para ele. Ao chamá-lo com o parâmetro /u também, ele chama a função de desinstalação do arquivo. Foi um meio criado onde cada arquivo ou DLL importante registra por si mesmo seus dados necessários, podendo criar chaves no registro, arquivos, etc. Isso facilita a criação dos instaladores, especialmente do instalador do Windows, onde cada arquivo instalado registra por si mesmo os dados necessários, e os arquivos não instalados (como os de componentes não selecionados) não criam suas configurações. Tecnicamente, uma função do arquivo é chamada e pode executar qualquer comando que um programa poderia.

Existe um pequeno software, IEFix, que usa basicamente estas dicas para restaurar o IE. Abrindo-o com um editor hexadecimal e procurando pelo “regsvr32”, encontrei algumas referências a ele. Usando um outro programa (o “Strings”, era da SysInternals, que foi comprada pela Microsoft) que exportava para um arquivo de texto todas as strings de um arquivo qualquer, identifiquei os arquivos que o IEFix chamava e “descobri a mágica”, criando então um programinha para automatizar esta tarefa (o qual batizei de ReIE, tem a função de reparar/reinstalar o IE, apenas com comandos simples que podem ser dados no “Executar”).

A descrição que o IEFix trazia consigo é esta:

Este programa corrige os seguintes sintomas:

  1. Erros em scripts no Internet Explorer.
  2. Quando você clica num link de uma mensagem de e-mail pelo Outlook ou numa página da web, ou clica com o botão direito numa página e escolhe “Abrir em nova janela”, acontece uma dessas coisas:
    -a. Não acontece nada;
    -b. A nova janela abre em branco;
    -c. Você recebe uma mensagem de erro num script.
  3. Quando você usa o comando “Imprimir” do Internet Explorer, ou o “Visualizar impressão”, não acontece nada.
  4. O Internet Explorer pergunta se você quer que ele seja o navegador padrão, mesmo se essa opção não estiver marcada nas “Opções da Internet”.
  5. A aba “Avançadas” das Opções da Internet está completamente vazia.
  6. A tela “Sobre” abre com a parte da versão em branco.

NOTA: Esta ferramenta executará as seguintes tarefas:

  • Registrar os arquivos do motor do Internet Explorer usando o comando “regsvr32”

Adicionalmente, para o Windows XP:

  • Inicia uma reinstalação do IE usando o método do arquivo “ie.inf”

Se o problema continuar, reinstale o Internet Explorer.

Tudo isso fica corrigido ao registrar novamente os arquivos que indiquei no começo deste texto.

Reinstalando o IE a partir do CD original do Windows

A reinstalação do IE pode ser feita aplicando o instalador, caso você tenha feito uma instalação de uma nova versão (por exemplo, quem tem Windows 2000 e instalou o IE6, ou agora, quem tem o XP e instalou o IE7); neste caso, a melhor forma de reinstalá-lo é reinstalar o IE a partir do instalador. Mas e quem nunca instalou o IE separado, e só usa o que vem com o Windows? Reinstalar o Windows é uma idéia, mas uma idéia tanto quanto demorada e tediosa, só para restaurar o IE… (eu não vou dizer “Esqueça o IE e use o Firefox”, porque várias coisas no Windows em si dependem do IE, vários programas usam o quadro embutido de visualização HTML do IE, etc).

Há uma saída, que funciona no Windows 2000 ou superior (devido o sistema de instalação do Windows 9x/Me usarem arquivos “.cab”, num sistema totalmente diferente do NT com os arquivos compactados de nomes estilo “arquivo.ex_”, com as configurações guardadas em arquivos “.inf”).

Quando a associação de arquivos “.inf” no Windows nunca foi alterada, você pode reinstalar o IE clicando no arquivo “ie.inf” com o botão direito, e escolhendo a opção “Instalar” (esse arquivo fica na pasta “inf”, dentro da pasta do Windows). Alguns programas podem modificar as associações de arquivos, e o item “Instalar” deixa de aparecer no menu dos arquivos “.inf”. E agora? Fácil: instale pelo prompt de comando. “Fácil” entre aspas, pois descobrir o comando não foi “tão fácil” para mim na primeira vez 😉

Clique em “Iniciar > Executar” e digite:

rundll32 setupapi,InstallHinfSection DefaultInstall 132 C:windowsinfie.inf

É um comando louco, não se assuste, rs. Tome cuidado com os espaços, e não coloque o caminho do arquivo “ie.inf” entre aspas, atente apenas para indicar o caminho correto no seu sistema, caso o Windows esteja instalado em outra pasta.

Esse comando chama as mesmas funções de instalação do IE usadas durante a instalação do Windows, é praticamente certo que depois disso o IE estará restaurado e funcionando. Se precisar restaurar algum arquivo, ele pedirá o CD do Windows. Se quiser, você pode cancelar a tela que pede o CD, e então ele apenas restaura as chaves do registro.

Nota 1: a reinstalação do IE dessa forma não desativa nem remove necessariamente controles Active-X ou barras de ferramentas que foram instaladas no navegador; se o causador do problema forem estas barras ou spywares residentes, é melhor desinstalar as barras e tentar eliminar os malwares.

Nota 2: isso não vale para o IE7 no Windows XP, pois o XP não vem nativamente com o IE7. Se você fizer isso com o IE7 instalado, o IE6 do XP será restaurado, mas o desinstalador e alguns restos do IE7 não serão removidos. Para reparar o IE7 no XP, a melhor forma seria desinstalá-lo e tentar instalá-lo novamente.

Agora, se não der certo e o problema continuar… Reinstale o Internet Explorer usando um instalador. Como? Baixe-o no site da Microsoft e instale-o, ou use o instalador que vem em alguns CDs desses que vêm em revistas de informática. Se você nunca instalou um Internet Explorer “avulso” e usa só o que já vem pré-instalado no Windows, pode reinstalar o Windows por cima, se você tiver tempo é claro. Conviver com problemas no IE pode ser complicado, mesmo que você use outro programa para navegar na web. Isso porque o Windows em si, a partir do 98, usa muitas coisas do “coração” do IE na exibição dos atalhos, das pastas, da ajuda, etc.

Lembre-se de que é necessário usar uma conta com direitos administrativos para registrar os arquivos ou alterar qualquer coisa na chave “HKEY_LOCAL_MACHINE”, inclusive para executar programas como o IEFix ou ReIE com sucesso. Ao rodar anti-vírus e spywares também, rode-os como administrador.

Removendo bloqueios do Windows

Muitos spywares impõem restrições diversas no ambiente do Windows. É comum, por exemplo, que eles alterem a página inicial do IE e bloqueiem a mudança, onde o campo “página inicial” nas opções da Internet fica desabilitado (em cinza). Esse bloqueio pode ser criado também por provedores que fornecem versões “personalizadas” do IE, ou ainda, pelo administrador do local, com as políticas de grupo, seja usando o “gpedit.msc” do Windows, ou editando diretamente o registro, ou ainda, usando softwares de bloqueio de terceiros.

Na via das dúvidas, quando ocorre algo parecido, recomendo apagar várias das chaves que impõem bloqueios na interface do Windows. Abra o editor do registro (“Iniciar > Executar > regedit”) e renomeie ou apague estas chaves:

  • HKEY_CURRENT_USER > Software > Policies > Microsoft > Internet Explorer
  • HKEY_LOCAL_MACHINE > Software > Policies > Microsoft > Internet Explorer
  • HKEY_CURRENT_USER > SOFTWARE > Microsoft > Windows > CurrentVersion > policies
  • HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > policies
  • HKEY_USERS > .DEFAULT > Software > Microsoft > Windows > CurrentVersion > Policies
  • HKEY_USERS > .DEFAULT > Software > Policies
  • HKEY_USERS > S-1-5-18 > Software > Policies
  • HKEY_USERS > S-1-5-19 > Software > Microsoft > Windows > CurrentVersion > Policies
  • HKEY_USERS > S-1-5-19 > Software > Policies
  • HKEY_USERS > S-1-5-20 > Software > Microsoft > Windows > CurrentVersion > Policies
  • HKEY_USERS > S-1-5-20 > Software > Policies
  • HKEY_USERS > S-1-5-21-299502267-1993962763-854245398-1003 > Software > Policies
  • HKEY_CURRENT_USER > Software > Policies
  • HKEY_LOCAL_MACHINE > Software > Policies
  • HKEY_CURRENT_USER > Software > Microsoft > Windows NT > CurrentVersion > Program Manager > Restrictions
  • HKEY_LOCAL_MACHINE > Software > Microsoft > Windows NT > CurrentVersion > Program Manager > Restrictions
  • HKEY_CURRENT_USER > HKEY_CURRENT_USER > Software > Microsoft > Windows NT > CurrentVersion > Program Manager > Settings
  • HKEY_LOCAL_MACHINE > HKEY_CURRENT_USER > Software > Microsoft > Windows NT > CurrentVersion > Program Manager > Settings
  • HKEY_CURRENT_USER > SOFTWARE > Microsoft > Windows > CurrentVersion > Group Policy
  • HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Group Policy

Você pode renomeá-las, colocando o número 1 depois do nome, por exemplo; isso facilitará restaurá-las depois, caso necessário. Ao remover as chaves indicadas, os bloqueios do Windows serão liberados: alguns imediatamente, outros, só no próximo logon. Propriedades da Internet, configurações de proxy do IE (visto que alguns discadores e programas do mal podem alterar essas configurações, redirecionando seu acesso para sites falsos, inclusive), opções do painel de controle (já que eles comumente bloqueiam muitas coisas, justamente para que você não possa restaurá-las)…

É isso basicamente que um programinha meu (AntiPolicy) faz, quando o usuário pede para remover bloqueios.

Algumas vezes a edição do registro pode estar desativada, e essa configuração é criada por uma chave no próprio registro. Com ela desativada, os usuários não podem abrir o “regedit”, nem mesmo o administrador, caso o bloqueio esteja aplicado no perfil dele. Mas os programas podem acessar normalmente. Então fica a dica, caso o “regedit” tenha sido desativado e você não consiga abri-lo, recebendo uma mensagem de permissão negada, rode o AntiPolicy e clique em “Remover bloqueios”. Para o sucesso da operação, pode ser necessário estar logado como administrador. Download do AntiPolicy, se necessário: http://www.mephost.com/software/antipolicy.htm.

Rode o IE com acesso restrito para ele

Por essas e outras coisas é uma boa idéia navegar sempre como usuário restrito ou convidado, o que quase ninguém faz em casa, devido as configurações muito limitadas. Diversas configurações globais ficam na chave “HKEY_LOCAL_MACHINE”, e os usuários restritos não podem alterar praticamente nada ali. Os programas rodados como usuários limitados têm as mesmas limitações para com o Windows que o usuário teria. Da mesma forma, executar programas desconhecidos ou sem boas referências como administrador, pode ser prejudicial ao sistema como um todo. Se der pau numa conta de usuário, delete-a e crie outras. Para mais segurança, deixe a partição do sistema formatada em NTFS, e navegue na Internet sempre como usuário limitado. Assim não só as chaves do registro, mas também os arquivos dos outros usuários e do sistema estão protegidos contra alteração ou exclusão.

É possível rodar o IE como usuário limitado mesmo logado como administrador. No Windows XP, clique com o direito no atalho que você usa para chamar o IE, e escolha “Propriedades”. Na aba “Atalho”, clique no botão “Avançadas”, e então marque “Executar com credenciais diferentes” (no Windows XP parece que está escrito um pouco diferente, estou usando aqui o Server 2003):

fig2
A partir de então, ao usar esse atalho para abrir o IE, aparecerá esta tela:

fig3
Basta dar [enter], você se acostumará, deixando marcada a opção “Executar este programa com acesso restrito”. Isso permite rodar o IE (ou qualquer outro programa) com uma conta de administrador, porém, sem poderes de administrador. Entre outras coisas, o programa não poderá gravar coisas no registro sob as chaves globais da máquina, evitando a instalação de malwares por scripts maliciosos no IE (isso não impede que o programa apague arquivos que o usuário tenha acesso, e nem que você baixe um programa malicioso e execute-o).

Observação: no ícone do IE presente na área de trabalho ou no menu Iniciar não dá para definir esta opção, pois eles não são atalhos comuns (não seguem o formato de arquivo “.lnk”, dos atalhos). Se quiser, crie um atalho para o IE arrastando o item “Internet Explorer” do menu “Iniciar” para a área de trabalho, e então, aplique essa propriedade nesse atalho.

Uma outra forma é rodar o IE usando outra conta de usuário. Você pode usar a mesma tela acima, selecionando outra conta na lista inferior (uma conta restrita ou o Convidado – se estiver ativada a conta de Convidado, lógico), ou diretamente com o comando “RunAs” (“Executar como”) via linha de comando, mas ficaria um tanto inconveniente.

Especial: rodando programas logado como administrador, mas sem direitos administrativos!

Você pode fazer com que todos os programas de uma determinada pasta sejam executados como usuário restrito. Não é difícil, mas não é muito comum, e depende do “gpedit.msc”, o que fica inviável nas versões domésticas do Windows. Como já estamos aqui mesmo, vamos lá…

As versões não domésticas do Windows possuem as diretivas de restrição de software, e estas têm dois níveis de proteção por padrão: “Não permitido” e “Irrestrito”. Definindo o nível “Não permitido”, você pode bloquear todos os usuários do computador de executarem determinados programas. Definindo “Irrestrito”, qualquer um poderá executar os programas, que é o padrão. O que poderia ser facilitado, o pessoal da Microsoft dificulta… Existe um outro nível, “Usuário básico”, que permite rodar os programas com limitações no que eles podem fazer no registro. Mas esse item não aparece no editor das políticas de grupo; para que apareça, deve-se editar o registro.

Vá até a chave:

  • HKEY_LOCAL_MACHINE > Software > Policies > Microsoft > Windows > Safer > CodeIdentifiers

e crie um novo valor DWORD com o nome “Levels” (caso não exista). Crie as subchaves necessárias, caso não existam, também, para poder chegar à “CodeIdentifiers”. Deixe o valor do item “Levels” como sendo 20000 hexadecimal (20 mil, não 2 mil, cuidado).

Com esta chave criada, aí sim, aparecerão os 3 níveis no editor das políticas de grupo. Clique em “Iniciar > Executar”, digite “gpedit.msc” e siga o caminho:

Configuração do computador > Configurações do Windows > Configurações de segurança > Diretivas de Restrição de Software > Níveis de Segurança

(Ufa!) Veja:

fig4
Chegando aí, falta pouco. O item padrão contém um “check”, no caso, “Irrestrito”. Quer dizer que os programas rodam irrestritamente, com base nos privilégios da conta de usuário em uso. Não defina os outros dois itens como padrão, pois você poderá ter problemas depois para editar estas opções (o Windows consegue se levantar puxando-se pelo próprio cabelo, incrível 😉

Nesse mesmo local, clique na chave “Regras adicionais”, logo abaixo da “Níveis de segurança”. Para bloquear o IE, vamos bloquear a pasta dele, obrigando o sistema a “sempre executar qualquer arquivo de dentro daquela pasta com acesso restrito”. Clique com o botão direito num local vazio (ou no menu “Ação”, estando com a chave “Regras adicionais” selecionada) e escolha “Nova regra de caminho…”. Veja:

fig5
Na tela que se abre, localize a pasta do IE (você pode escolher outras pastas, para bloquear outros programas, mas nunca faça isso na pasta do Windows ou na system32. Se fizer, o próprio gpedit.msc depois poderá ser executado com privilégios limitados sem poder salvar as opções, de forma que você não consiga restaurar o ambiente, tendo que instalar o Windows novamente – sem nem mesmo ser por cima ou atualizá-lo!). Localizada a pasta, escolha “Usuário básico” no campo “Nível de segurança”:

fig6
Dê OK, feche os programas abertos, faça logoff e pronto: rode o IE logado como administrador, mas sem direitos administrativos! Sem fazer logoff pode ser que não funcione, levará um tempinho até a configuração ser atualizada; fazendo logoff, pode sair mais rápido.

Dica: para bloquear apenas um programa ou arquivo, e não uma pasta inteira, então escolha “Nova regra de hash”, e não “Nova regra de caminho”; na tela que será aberta basta clicar em “Procurar” e localizar o programa desejado.

Nota: se você não adicionasse aquele valor no registro, o nível de segurança “Usuário básico” não apareceria, ficando apenas os níveis “Irrestrito” e “Não permitido”. Experimente aplicar o “Não permitido” e tente rodar o IE, se quiser…

Escolher “Usuário básico” roda o programa com restrições. Ele não poderá, entre outras coisas, editar valores sob chaves globais do registro (as aplicáveis a todas as contas, como a HKEY_CLASSES_ROOT, HLEY_LOCAL_MACHINE, etc). Isso impede que ele afete as outras contas de usuários. Escolher “Não permitido” é uma diretiva realmente proibitiva, nenhuma conta poderá executar o programa bloqueado, nem mesmo os administradores. Veja só:

fig7
Ele logará no log de eventos (na seção “Sistema”):

O acesso a C:Arquivos de programasInternet Exploreriexplore.exe foi limitado pelo administrador pela localização com a regra de diretiva {b17cab9f-78f4-4b0c-aa15-b815def7ad41} colocada no caminho C:Arquivos de programasInternet Explorer

Não há motivos para usar esta diretiva, a menos que realmente você queira impedir o total uso de determinados programas que estejam no HD. Pode ser uma boa idéia, por exemplo, em PCs públicos: aplica-se a diretiva de bloqueio total nas pastas “Meus documentos” e “área de trabalho”. Desde que as outras estejam bloqueadas, os usuários não poderão rodar programas que porventura baixem ou salvem nessas pastas, mas poderão salvar, mover, copiar, renomear e excluir os arquivos (desde que as contas usadas possuam as devidas permissões de acesso para isso, é claro). Pode-se bloquear por aí, também, a execução de programas a partir de pen drives, CDs/DVDs, disquetes, sem bloquear o acesso às unidades… Bastando, para isso, mandar bloquear pela letra da unidade.

Nota: ao bloquear uma pasta, o mesmo bloqueio se aplicará a todas as subpastas dela.

Vale notar ainda que, usando o nível “Usuário básico” para o IE, ele sempre será executado com privilégios de contas limitadas, para todos os usuários, o que impede a instalação de plug-ins, alteração de algumas opções da Internet, e o próprio site do Windows Update, mesmo se você estiver logado como administrador. Isso não atrapalha as atualizações automáticas, mas atrapalha o que for feito pelo navegador no site do Windows Update, visto que ele usa um controle Active-X no IE para se comunicar com o sistema (um controle Active-X é basicamente um programa que não é executado pelo duplo clique do usuário, mas sim pela chamada de outros programas). Ele identificaria como se o usuário fosse restrito, mesmo sendo administrador:

fig8
Para fazer algumas coisas no IE com seus reais direitos de administrador, você deverá voltar no “gpedit.msc” e remover essa regra, podendo criá-la novamente depois; ou, mais fácil, deixando-a temporariamente configurada no nível “Irrestrito”, enquanto precisar usar o programa como administrador. Há um outro jeito também… Esses bloqueios impedem a execução e/ou rodam programas em modo restrito, mas nada impede que eles sejam executados sem restrições se estiverem em uma pasta ou local diferente do configurado. Por exemplo, copiando a pasta do IE de dentro da “Arquivos de programas” para a sua área de trabalho, e rodando-o a partir dali, ele funcionará, como se o bloqueio não estivesse aplicado. Para evitar isso, pode-se bloquear pelo hash do executável, assim ele sempre será bloqueado, mas pode ser incômodo adicionar programa por programa…

Dessa forma você pode rodar vários programas ficando mais tranqüilo, sem abrir mão dos seus direitos de administrador. Mas cuidado, não tente rodar vírus e espiões dessa forma. Se você for aventureiro (como eu, nesse quesito), prefira rodar os vírus numa máquina virtual. E vale a pena avisar novamente, nunca bloqueie arquivos da pasta do Windows! Se precisar bloquear um ou outro programa diretamente, e ele residir na pasta do Windows, então bloqueie apenas o executável dele, não a pasta.

Boa navegação! (agora sim, eu digo: “use o Mozilla Firefox!” 😉

Sobre o Autor

Redes Sociais:

Deixe seu comentĂĄrio

X