[Arquivo de Boletins Informativos ^] [< Volume 6, Número 2] [Volume 7, Comunicado Especial >]
O Boletim Informativo Interno dos Sistemas Volume 7, Número 1
http://www.sysinternals.com
Copyright (C) 2005 Mark Russinovich
05 de janeiro de 2005 - Nesta edição:
EDITORIAL
- Tem DEP?
WINDOWS INTERNALS, 4ª EDIÇÃO
NOVIDADES NO SYSINTERNALS
- Estatísticas de novembro
- Artigos da Revista Sysinternals
- Sysinternals RSS Feed
- Mark é um MVP da Microsoft
- Autoruns v6.01
- Explorador de Processos v8.61
- Sigcheck v1.0
- Bginfo v4.07
- Regjump v1.0
- Hex2dec v1.0
- Tcpvcon v2.34
- Atualizações do PsTools
- Sysinternals na Microsoft
INFORMAÇÕES INTERNAS
- Navegação na Internet
- Usar o LiveKd para solucionar problemas de sistemas comprometidos
- Creekside?
- Corretor do Registro ChkReg
- Diagnóstico de Memória do Windows
- Pesquisando por interfaces não documentadas
TREINAMENTO INTERNO
- Conexões do Windows em São Francisco
- Classes Internas/Sysinternals do Windows Práticas por Mark Russinovich e David Solomon
O Boletim Informativo Sysinternals é patrocinado pela Winternals Software, na Web em http://www.winternals.com. O Winternals Software é o principal desenvolvedor e provedor de ferramentas de sistemas avançados para Windows NT/2000/XP/2003.
A Winternals tem o prazer de anunciar a próxima versão do Pak 5.0 do Administrador com uma atualização abrangente, incluindo o ERD Commander 2005.
Os novos recursos no ERD Commander 2005 incluem:
- Analisador de Falhas: diagnosticar rapidamente e facilmente o driver responsável por uma falha do Windows, mesmo que o sistema não inicialize
- DiskWipe – apagar com segurança discos rígidos ou volumes; Autoruns: veja quais aplicativos são iniciados na instalação do Windows e no logon do usuário – útil para diagnosticar problemas de recursos do sistema e encontrar malware em potencial
- Navegador da Web do FireFox: baixar hotfixes, atualizações de driver, procurar ajuda na Base de Dados de Conhecimento da Microsoft – tudo no sistema que você está tentando reparar
- Assistente de Desinstalação do Hotfix, que permite remover hotfixes e service packs em um sistema não inicializável
- Reparo de Arquivos do Sistema, que verifica a integridade dos arquivos do sistema Windows.
Esses recursos, vários aprimoramentos e melhorias na capacidade de uso do ERD Commander 2005 e um novo cliente de Recuperação Remota mais fácil de ser criado e usado, baseado no Windows PE, estão incluídos no novo Administrator's Pak 5.0, disponível no final de janeiro de 2005. Para se inscrever em uma avaliação do Pak 5.0 do Administrador quando ele for lançado, visite http://www.winternals.com/ap5preview/.
EDITORIAL
Olá, pessoal.
Bem-vindos ao boletim informativo do Sysinternals. Atualmente, o boletim informativo tem 40.000 assinantes.
A onda crescente de malware, incluindo spyware e vírus, deixa todos preocupados com a segurança. As boas medidas de segurança incluem manter-se atualizado com os patches do sistema operacional e dos aplicativos, instalar e configurar ferramentas de remoção de firewall, antivírus e spyware e ter bom senso ao fazer downloads da Internet ou abrir anexos de emails. Contudo, apesar das medidas completas, o malware ainda pode encontrar maneiras de se esgueirar por defesas e infectar um computador. A brecha mais comum nas defesas de um sistema é a vulnerabilidade de estouro de buffer ,e é por isso que você deve estar familiarizado com o recurso de Prevenção de Execução de Dados (DEP) do Windows XP Service Pack 2.
Um estouro de buffer é um erro de programação que programas mal-intencionados podem aproveitar para assumirem o controle do thread que executa o erro de codificação. Geralmente, os estouros de buffer são baseados em pilha, o que significa que um invasor fornece ao programa mais dados do que caberá em um buffer armazenado na pilha. Os dados são criados de forma que, quando a função com o estouro tenta retornar à função da qual foi invocada, ela retorna para um local nos dados.
Infelizmente, os erros de estouro de buffer podem afetar até mesmo o software mais testado e revisado. Vários estouros de buffer são anunciados mensalmente para o Windows e seus componentes de software (o Linux e seus aplicativos não estão imunes, com um número de estouros de buffer equivalente ao do Windows). Um tema comum para a maioria das explorações de estouro de buffer é que elas resultam na execução do código colocado em regiões de memória que devem conter apenas dados.
Embora o processador Intel Itanium seja compatível com a proteção sem execução desde sua versão, foi somente a partir do Windows XP SP2 (e do próximo Windows Server 2003 SP1) que o Windows realmente fez uso desse suporte de hardware, por exemplo, marcando pilhas de thread e memória heap como não executáveis. Outros processadores que dão suporte à proteção de hardware sem execução incluem o Opteron AMD64 de 64 bits, o Athlon 64 e o clone da Intel chamado EM64T, agora disponível nos processadores Xeon e Pentium 4. Recentemente, a AMD e a Intel introduziram processadores de 32 bits sem suporte para execução: o AMD Sempron e a família "J" Pentium 4 (como o 520J, 540J, etc.).
Pode parecer óbvio para você que o Windows deveria, por padrão, aplicar a proteção contra a não execução de pilhas e da memória heap do aplicativo para evitar explorações de estouro de buffer, mas há centenas de milhares de aplicativos existentes, alguns dos quais podem realmente depender da configuração não aplicada para a operação correta. Portanto, o Windows XP SP2, a primeira versão do Windows que impõe proteção sem execução, fornece a um administrador o controle sobre quais processos são protegidos e quais não. Primeiro, em uma decisão que visa a melhorar a segurança no futuro, a versão de 64 bits do Windows sempre impõe sinalizadores de não execução para todos os processos de 64 bits. Se um fornecedor de software quiser lançar um aplicativo de 64 bits, precisará certificar-se de que não executará o código de regiões não executáveis da memória (ele pode marcar uma região de dados como executável se gerar o código em tempo real, como os aplicativos Java e .NET costumam fazer).
Em segundo lugar, como as explorações de estouro de buffer são mais comumente direcionadas aos componentes do sistema operacional, o Windows XP e o Windows Server 2003 de 32 bits protegem, por padrão, as imagens do núcleo do sistema operacional. Porém, no caso dos aplicativos de 32 bits (executados no Windows de 32 bits ou no Windows de 64 bits), o padrão do Windows XP é uma estratégia de "aceitação" (os aplicativos não são protegidos por padrão), enquanto o padrão do Windows Server 2003 é "aceitação" (os aplicativos são protegidos por padrão, mas aplicativos específicos podem ser excluídos). Isso faz sentido porque a segurança normalmente é de maior prioridade nos sistemas de servidor. Você pode alterar as configurações de ativação ou desativação na caixa de diálogo de configuração DEP, que pode ser acessada pelo botão Configurações na seção Desempenho da página Avançado do miniaplicativo do painel de controle Sistema.
Como mencionei anteriormente, com exceção dos processadores AMD Sempron e Pentium 4 "J" relativamente novos, todos os chips compatíveis com x86 lançados até o momento não têm suporte para execução. Contudo, o Windows XP e o Windows Server 2003 implementam uma forma limitada de DEP nesses processadores chamados "DEP de software". Como o sistema operacional obtém o controle de um thread quando o thread gera uma falha, ele pode garantir que o manipulador de falhas que ele executará seja aquele registrado estaticamente pelo código do programa. Isso impede uma exploração que redireciona o manipulador de falhas de um thread para executar um código mal-intencionado em um buffer de pilha estourado, como o vírus CodeRed fez com que o IIS fizesse quando foi lançado em 2001.
Apesar da sua relativa simplicidade, o DEP é uma das defesas mais fortes que o sistema operacional oferece no seu escudo contra malware auto-propagador. Infelizmente, três coisas limitam seu poder: falta de suporte de hardware na maioria dos processadores implantados atualmente na configuração sem execução, a configuração de aceitação padrão no Windows XP de modo que apenas os principais processos do sistema operacional estejam protegidos e a falta de reconhecimento. O DEP de software é limitado no seu escopo e, por isso, o DEP só é marginalmente eficaz, a menos que você esteja executando o Windows em hardware que dê suporte a não execução. O fato de o Windows XP ter como padrão a opção de aceitação significa que, mesmo quando os usuários executam o Windows em hardware sem execução, os únicos processos que recebem proteção DEP são os do sistema operacional - se houver um estouro de buffer no firewall, navegador da Web, leitor de e-mail ou em outro aplicativo habilitado para a rede pertencente à sua empresa terceirizada, você ainda estará vulnerável. Na verdade, alguns dos aplicativos mais explorados por malware, IIS e Outlook, não estão protegidos na configuração de aceitação. Por fim, como a maioria das pessoas não está ciente do seu comportamento padrão ou mesmo do DEP, os sistemas permanecerão, em sua maioria, em risco de problemas de estouro de buffer.
Está na hora de a Microsoft fazer com que os usuários paguem o preço da compatibilidade em troca de uma segurança melhor, ou os usuários acabarão pagando um preço muito mais alto nas mãos dos vírus, e eles, por sua vez, passarão a conta para a Microsoft. Enquanto isso, recomendo enfaticamente que você atualize para o Windows XP SP2 (o Windows XP 64-bit Edition e o Windows Server 2003 SP1 também têm suporte para não-executar), mude para a opção de aceitação e atualize para um processador com suporte para não-executar (infelizmente, não receberei uma comissão).
Passe o boletim informativo para amigos que você acha que podem estar interessados no seu conteúdo.
Agradecemos!
-Mark
WINDOWS INTERNALS, 4ª EDIÇÃO
O livro oficial da Microsoft sobre os aspectos internos do Windows Server 2003, Windows 2000 e Windows XP, do qual sou coautor com Dave Solomon, já está disponível nas livrarias. Dave e eu ampliamos a cobertura da edição anterior em cerca de 25%, acrescentando material novo não apenas sobre as alterações no Windows Server 2003 e no XP, mas também sobre ferramentas e técnicas de solução de problemas. Você encontrará dicas avançadas sobre como usar o Process Explorer, o Filemon e o Regmon, e há um capítulo totalmente novo sobre a análise de despejo de memória do Windows.
Saiba mais sobre o conteúdo do livro e pedidos on-line em
http://www.sysinternals.com/windowsinternals.shtml
NOVIDADES NO SYSINTERNALS
SYSINTERNALS RSS FEED
Recebi a solicitação de adicionar um mecanismo de notificação sobre novas postagens no Sysinternals com tanta frequência que finalmente segui a tendência de toda a Web e adicionei um feed RSS (se você não estiver familiarizado com os feeds RSS, aqui está uma boa introdução: http://rss.softwaregarden.com/aboutrss.html). O feed também me dá a oportunidade de notificá-lo sobre pequenas correções de bugs e atualizações que não garantem uma listagem completa na primeira página. Ele já se parece com a maneira preferida para que as pessoas aprendam sobre atualizações com base no número de ocorrências que o feed obtém por dia.
Acesse o feed do Sysinternals RSS em:
http://www.sysinternals.com/sysinternals.xml
ARTIGOS DA REVISTA SYSINTERNALS
Há cerca de seis meses comecei a criar uma coluna semestral no Windows IT Pro Magazine (antigo Windows e .NET Magazine) sobre as ferramentas do Sysinternals. Cada coluna descreve uma ferramenta diferente, fornecendo dicas sobre uso avançado e informações de como elas funcionam.
Dos três que foram publicados, listados abaixo, os dois primeiros podem ser acessados on-line por não assinantes e o terceiro estará disponível em breve:
Autoruns: http://www.win2000mag.com/Windows/Article/ArticleID/44089/44089.html
Pslist e Pskill: http://www.winnetmag.com/Windows/Article/ArticleID/43569/43569.html
PSExec: http://www.winnetmag.com/Windows/Issues/IssueID/714/Index.html
MARK É UM MVP DA MICROSOFT
O líder do MVP (Most Valuable Professional) da Microsoft do SDK da plataforma me nomeou MVP para 2005. Minha gratidão a ele e à Microsoft por este reconhecimento oficial das contribuições que fiz para os clientes da Microsoft com a Sysinternals.
ESTATÍSTICAS DE NOVEMBRO
Finalmente consegui um programa decente de análise de tráfego da Web para o Sysinternals e analisei os arquivos de registro do mês de novembro. A magnitude dos números me surpreendeu. Aqui estão alguns destaques:
- 3,6 milhões de visualizações de página
- 775.000 visitantes exclusivos
- 1,2 milhão de downloads de utilitários
- 200.000 downloads do Process Explorer, o download nº 1
AUTORUNS V6.01
O Autoruns evoluiu muito nos últimos meses com duas grandes atualizações de número de versão. A versão mais recente do Autoruns exibe os locais de inicialização automática além da tecla Executar e das pastas de inicialização padrão, incluindo DLLs de notificação do Winlogon, barras de ferramentas do Explorer, extensões de namespace e objetos auxiliares do navegador, além de DLLs de inicialização automática. Outro novo recurso, o item de menu Google (emprestado do Process Explorer), ajuda a identificar imagens desconhecidas abrindo um navegador e iniciando uma pesquisa do nome da imagem selecionada.
Outro novo recurso, a verificação de assinatura de imagem, pode ajudá-lo a distinguir entre malware e componentes do sistema ou aplicativos confiáveis. Geralmente, a Microsoft inclui hashes de arquivos do sistema operacional que são assinados com a chave de assinatura privada da Microsoft. As funções criptográficas do Windows descriptografam os hashes assinados com a chave de assinatura pública da Microsoft e o Autoruns valida as imagens no seu sistema comparando seus hashes com as versões descriptografadas, prefixando o nome da empresa da imagem com "(Verificado)" quando houver uma correspondência. Se uma imagem tiver sido adulterada, corrompida, substituída ou tiver um hash assinado por um publicador considerado não fidedigno pelo sistema, o Autoruns comunica o nome da empresa da imagem como "(Não Verificado)".
Como administrador de sistemas, é possível que você queira verificar as imagens de inicialização automática nas contas diferentes daquela com a qual você está conectado, portanto, o Autoruns passou a incluir um menu Usuário com seleções para cada conta que tenha um perfil armazenado no computador.
Por fim, agora há um equivalente de linha de comando da GUI de Autoruns, chamado Autorunsc, que lista as informações de remoção automática para o console. Sua capacidade de formatar a saída como CSV, quando combinada com o utilitário PsExec da Sysinternals, facilita a geração de inventários das imagens de inicialização automática configuradas nos computadores na sua rede.
Baixar Autoruns em
http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml
EXPLORADOR DE PROCESSOS V8.61
Mais uma vez, o Explorador de Processos, uma ferramenta que substitui o Gerenciador de Tarefas como um utilitário avançado de gerenciamento de processos, foi a ferramenta na qual mais me concentrei, e isso ocorre porque recebo muitos comentários sobre ele. Desde o último boletim informativo, o Explorador de Processos passou da versão 8.4 para a 8.6. Uma série de novos recursos marcam essas duas versões, incluindo um item de menu do Google que inicia uma pesquisa de informações sobre um processo selecionado, uma guia de cadeias de caracteres na caixa de diálogo de propriedades do processo que lista as cadeias de caracteres ASCII e Unicode presentes em um arquivo de imagem do processo, uma entrada de menu de cadeias de caracteres que lista cadeias de caracteres em um arquivo de imagem DLL selecionado, e o nome do processo mais consumido pela CPU na dica de ferramenta que mostra quando você passa o mouse sobre o ícone de bandeja do Explorador de Processos.
Muitas pessoas solicitaram recursos que perderam ao mudar do Gerenciador de Tarefas, como a guia Aplicativos do Gerenciador de Tarefas. A guia Aplicativos mostra uma lista de janelas de nível superior na área de trabalho interativa, juntamente com o status do thread proprietário de cada janela: "Em execução" se o thread estiver aguardando para receber uma mensagem do Windows ou se tiver processado uma mensagem do Windows nos últimos cinco segundos e "Não está respondendo" se não estiver (ironicamente, isso geralmente significa que "Em execução" indica que o thread está aguardando e "Não está respondendo" que ele não está em execução). Agora você pode obter essas mesmas informações com o Explorador de Processos adicionando as colunas "Título da Janela" e "Status da Janela" à exibição do processo.
O Explorador de Processos tem recursos voltados para processos do .NET há algum tempo, incluindo destaque aos processos do .NET e a guia Desempenho do .NET na caixa de diálogo de propriedades dos processos do .NET. Um processo do .NET é aquele que foi carregado e registrado com o runtime do .NET. Se um processo for registrado algum tempo depois de ser iniciado, é possível que o Explorador de Processos não perceba que se trata de um processo do .NET, mas a versão mais recente verifica novamente os processos quanto ao status do .NET e à associação ao objeto de trabalho quando você atualiza manualmente a exibição, seja pressionando o botão da barra de ferramentas de atualização, a tecla F5 ou selecionando o item do menu Atualizar.
Para as situações em que você não tem certeza de qual processo possui uma janela, você pode usar o novo botão da barra de ferramentas do localizador de janelas para identificá-lo. Basta arrastar o botão da barra de ferramentas, que se parece com um alvo, para fora da barra de ferramentas e sobre a janela em questão e o Explorador de Processos seleciona o processo proprietário na exibição do processo.
Uma adição que será imediatamente óbvia para você é o grafo de mini-CPU que é exibido próximo à barra de ferramentas. Esse gráfico mostra o histórico de uso da CPU do sistema e, assim como a versão expandida que você obtém quando clica nele para abrir a caixa de diálogo Informações do sistema do Explorador de Processos, apresenta uma dica de ferramentas que inclui o registro de data e hora e o processo que consome mais CPU no ponto do gráfico sobre o qual você move o mouse. Você pode mover o gráfico para qualquer lugar na área da barra de ferramentas, até mesmo para sua única linha, de modo que ele se estenda por toda a largura da janela do Explorador de Processos.
Dois recursos relacionados à segurança são a verificação de assinatura de imagem e o status de proteção de execução de dados (DEP). Quando você ativar a opção de assinatura de imagem, o Explorador de Processos verificará se uma imagem do processo foi assinada digitalmente por um signatário confiável e, assim como o Autoruns, prefixará o nome da empresa na caixa de diálogo de propriedades do processo com "Verificado" ou "Não verificado". A opção está desativada por padrão porque a verificação de assinatura de imagem pode levar vários segundos, já que a verificação vai para sites da Web para verificar a validade dos certificados de assinatura.
O DEP, que descrevo na introdução deste boletim informativo, é algo que você deve habilitar no Windows XP SP2 para proteção aprimorada contra explorações de estouro de buffer. Você pode marcar o status do DEP de um processo adicionando a coluna "Status do DEP" à exibição do processo ou verificando o campo "Status do DEP" na página de imagem da caixa de diálogo de propriedades do processo.
Por fim, agora, o Explorador de Processos lista os drivers carregados no sistema na exibição DLL do Processo do sistema, que é o processo associado aos threads de trabalho do driver de kernel e de dispositivo. As mesmas informações estão disponíveis em cada driver e nas DLLs listadas em outros processos, incluindo versão, nome da empresa, caminho completo e endereço de carregamento no espaço de endereço do sistema.
Baixar o Explorador de Processos em
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
SIGCHECK V1.0
Muitas das ferramentas do Sysinternals estão adotando recursos que ajudam os usuários a identificar malware, e o Sigcheck é um utilitário de linha de comando voltado quase que exclusivamente para esse objetivo. Ele usa a mesma funcionalidade de verificação de assinatura de imagem incluída no Autoruns e no Explorador de Processos para informar se um arquivo foi ou não assinado digitalmente por um editor confiável. Além disso, ele relata informações sobre a versão do arquivo da imagem ou imagens que você especificar, incluindo o nome do produto, descrição, nome da empresa e versão. Essas informações são semelhantes às relatadas pela ferramenta Filever que acompanha o Windows XP e o Windows Server 2003, mas o Sigcheck também informa o carimbo de data/hora em que o arquivo foi originalmente "vinculado" ou criado para imagens não assinadas e o carimbo de data/hora da assinatura da imagem para as assinadas. Por fim, a maioria dos hashes assinados é assinada com chaves que também foram assinadas, uma sequência que forma o que é chamado de cadeia de assinatura de certificados. O Sigcheck oferece suporte a uma opção de linha de comando que o orienta a imprimir a cadeia de assinaturas com informações sobre cada um dos signatários da cadeia.
Um dos possíveis usos relacionados à segurança do Sigcheck é investigar quaisquer imagens de .exe .dll ou .sys não assinadas em qualquer dos diretórios na raiz da instalação do Windows (normalmente \Windows). Você pode identificar facilmente imagens .exe não assinadas executando o Sigcheck com essa linha de comando, por exemplo:
sigcheck -s -u c:\windows\*.exe
Todas as imagens do Microsoft devem incluir assinaturas válidas, mas o comando acima infelizmente revelará que muitas não incluem, resultando em arquivos que podem ser potencialmente explorados para ocultar malware.
Baixar o Sigcheck em
http://www.sysinternals.com/ntw2k/source/misc.shtml
BGINFO V4.07
Essa pequena atualização do Bginfo, uma ferramenta que exibe as informações configuradas na área de trabalho do computador em que você a executa para facilitar a visualização, tem melhor suporte para bitmaps que precisam ser esticados para se ajustarem ao tamanho especificado, melhorias na detecção da CPU, suporte para MySQL e compatibilidade aprimorada com vários monitores.
Baixar o Bginfo em
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml
REGJUMP V1.0
Se você já quis criar atalhos do Explorador para chaves específicas do Registro ou simplesmente inserir o caminho de uma chave e abrir o Regedit no local de destino, você achará o Regjump útil. O Regjump é um utilitário de linha de comando que usa a mesma tecnologia "jump-to" do Registro que fomos pioneiros no Regmon. Dê ao Regjump um caminho do Registro como seu argumento de linha de comando e o Regedit será aberto e navegará até a chave ou valor especificado.
Baixar o Regjump em
http://www.sysinternals.com/ntw2k/source/misc.shtml
HEX2DEC V1.0
Trabalhando com depuradores e desmontagem, muitas vezes me vejo tendo que converter hexadecimal em decimal e vice-versa. Finalmente, cansei de abrir o Calc, inserir um número e alternar a base para ver a conversão, por isso escrevi um pequeno utilitário de conversão de linha de comando. O Hex2dec converte em qualquer direção e identifica convenientemente a entrada como hexadecimal se tiver um prefixo "0x" ou "x" ou incluir as letras 'a'-'f' (não diferencia maiúsculas de minúsculas).
Baixar o Hex2dec em
http://www.sysinternals.com/ntw2k/source/misc.shtml
TCPVCON V2.34
O Netstat é um utilitário de linha de comando integrado ao Windows NT e superior que no momento mostra os pontos de extremidade TCP e UDP ativos no sistema. A versão que a Microsoft introduziu com o Windows XP inclui uma informação útil: o identificador de processos (PID) do processo que abriu cada ponto de extremidade. Contudo, para determinar o nome do processo ou qualquer outra informação sobre ele, você precisa abrir uma ferramenta de listagem de processos e encontrar o processo com esse PID.
O TCPView é um aplicativo de GUI do Sysinternals que mostra as mesmas informações do ponto de extremidade ativo, mas muito mais conveniente do que o Netstat, pois inclui o nome do processo, alterna rapidamente entre nomes DNS e endereços de IP brutos e realces com cores de pontos de extremidade novos e excluídos. O download do TCPView já inclui o TCPVCon, uma versão de console do TCPView, para aqueles que gostam de usar interfaces de linha de comando. Ao contrário do Netstat, o TCPVCon exibe o caminho completo do processo associado a cada ponto de extremidade e inclui uma chave que despeja a saída no formato CSV.
Baixar o Tcpvcon em
http://www.sysinternals.com/ntw2k/source/tcpview.shtml
ATUALIZAÇÕES DO PSTOOLS
PsKill e PsLoglist são os dois PsTools que ganharam aprimoramentos nos últimos meses. O PsKill, um utilitário de linha de comando que encerra processos no sistema local ou remoto, já dá suporte a um -t
comutador para que você possa encerrar uma árvore inteira de processos. Várias pessoas pediram essa opção para facilitar a limpeza de árvores em fuga de scripts em lote.
O PsLoglist é uma ferramenta de linha de comando que despeja logs de eventos nos sistemas locais ou remotos. As atualizações recentes adicionaram cinco opções à sua lista já longa de qualificadores de linha de comando. Os novos argumentos permitem que você exclua os tipos de eventos ou fontes de eventos especificados da saída ou apenas os eventos de despejo dos últimos minutos ou horas. Agora, ele também suporta um modo de monitoramento de log de eventos, no qual é executado até ser encerrado, imprimindo registros de log de eventos à medida que forem gerados.
Baixe o PsTools, incluindo o PsKill e o PsLoglist, em
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
SYSINTERNALS EM WWW.MICROSOFT.COM
Eis a última edição das referências do Sysinternals nos artigos da Base de Dados de Conhecimento Microsoft (KB) lançados desde o último boletim informativo. Isso eleva para 63 o número total de referências de KB públicas no Sysinternals.
CORREÇÃO: o Reprodutor Multimídia do Windows série 9 para Windows acessa com frequência o registro e pode afetar a performance http://support.microsoft.com/?kbid=886423
Visão Geral da Atualização de Segurança do GDI+ 1.0 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/gdiplus10security.asp
Edição do Registro http://support.microsoft.com/default.aspx?scid=kb;en-gb;835818
Você recebe uma mensagem de erro "Não há informações a serem exibidas neste modo de exibição" ao tentar acessar uma Exibição de Projeto http://support.microsoft.com/default.aspx?scid=kb;en-us;810596
INFORMAÇÕES INTERNAS
NAVEGAÇÃO NA INTERNET
Há cerca de um ano eu anunciei que tinha mudado do IE para o Mozilla porque o IE não tinha os recursos considerados obrigatórios para um navegador de Internet decente, como bloqueio pop-up, navegação com guias, preenchimento automático de formulários e filtragem de anúncios. Pouco tempo depois, alguém me indicou o Avant Browser, um pequeno download que usa o IE (não é um navegador próprio) para oferecer tudo isso e muito mais. A interface de usuário complicada do Mozilla e a falta de compatibilidade com determinados sites que frequento facilitaram a decisão de mudar. Embora a nova versão do FireFox seja melhor em ambos os aspectos, ainda há alguns sites incompatíveis (como Windows Update, por exemplo) e, por isso, não fui obrigado a mudar novamente.
O lento progresso da Microsoft no aprimoramento do IE, mesmo à luz dos modestos aprimoramentos do Windows XP SP2 do IE, deveria envergonhá-la de comprar o Avant Browser e incorporá-lo à próxima versão do IE.
Baixe o Navegador Avant em: http://www.avantbrowser.com
USAR O LIVEKD PARA SOLUCIONAR PROBLEMAS DE SISTEMAS COMPROMETIDOS
O LiveKd é um utilitário que escrevi para a 3ª edição do Inside Windows 2000 (agora é uma ferramenta freeware no Sysinternals). Ela permite que você use o Windbg ou o Kd do pacote Ferramentas de Depuração da Microsoft para Windows para executar comandos de depuração normalmente usados para investigar despejos de memória e sistemas congelados em um sistema que esteja on-line e ativo. A Microsoft introduziu uma funcionalidade semelhante, chamada "depuração do kernel local", nas ferramentas de depuração ao executar no Windows XP e superior. Entretanto, há várias coisas que você pode fazer com o LiveKd que não é possível com a depuração do kernel local. Por exemplo, você não pode examinar pilhas de threads no modo kernel com depuração do kernel local e o comando list-kernel modules, lm k
, que lista apenas o kernel do sistema operacional e não os outros drivers de carga quando executado na depuração local do kernel. Ambos os comandos funcionam no LiveKd.
Outro comando que não funciona na depuração do kernel local, mas que funciona no LiveKd, é .dump
. Aprendi com um engenheiro dos Serviços de Suporte a Produtos (PSS) da Microsoft que o .dump
comando pode ser útil para solucionar problemas de um sistema comprometido. Um computador que está com problemas, mas que fornece serviços como Web ou banco de dados, pode não ser um candidato para reinicialização ou depuração tradicional, em que o sistema é pausado durante a investigação. Executar o LiveKd e executar o .dump resulta em um arquivo formatado de despejo de memória que contém o conteúdo da memória física do sistema. Você pode levar o arquivo de despejo para outro computador e analisar o estado do sistema operacional e dos aplicativos de serviço carregando o arquivo de despejo no WinDbg ou Kd, evitando uma interrupção enquanto examina a causa de um problema.
Baixar o LiveKd em
http://www.sysinternals.com/ntw2k/freeware/livekd.shtml
CREEKSIDE?
Recentemente, eu estava investigando a inicialização da versão do Windows XP Service Pack 2 do Winlogon, o processo do sistema responsável por apresentar a interface do usuário de logon, quando me deparei com o código na desmontagem em que o Winlogon verifica a presença de uma DLL chamada ediskeer.dll no \Windows\System32
diretório, garante que ela seja assinada digitalmente por um signatário confiável, se ela existir, e carrega-o e chama uma função sem nome exportada pela DLL. O código Winlogon que é executado quando alguém faz logon no sistema também chama a DLL se ela foi carregada durante a inicialização.
Procurei a DLL no meu sistema e não a encontrei, e ela também não está presente no CD do Service Pack 2. Então, o que é a DLL? Usando os símbolos de depuração que a Microsoft envia para o sistema operacional, pude ver o Winlogon configurar uma variável chamada "Creekside" se ediskeer.dll estiver presente e assinado, e então percebi que "ediskeer" consiste das últimas 8 letras de "creekside" em ordem inversa. Ainda não sei ao que creekside se refere, mas suspeito fortemente que a DLL seja uma que é fornecida apenas com o Windows XP Starter Edition, a versão de baixo custo do Windows XP que a Microsoft introduziu recentemente nos países em desenvolvimento. O Starter Edition é baseado no mesmo núcleo do sistema operacional que o Windows XP Professional e o Home Editions, mas impõe limites ao número de aplicativos que um usuário pode ter em execução ao mesmo tempo. Se eu estiver correto, o Winlogon carregará a DLL para impor esse limite, ativando-o sempre que um novo usuário fizer logon.
CORRETOR DO REGISTRO CHKREG
Ao longo dos anos, Bryce e eu recebemos várias solicitações de uma analogia do Registro do Chkdsk, o utilitário de verificação de consistência do sistema de arquivos. Nunca escrevemos uma porque sentimos que o público para uma é muito pequeno para justificar o esforço. Há cerca de um ano, a Microsoft lançou o pouco conhecido Chkreg, um Chkdsk para o Registro que corrige muitos tipos de corrupção do Registro.
Infelizmente, o Chkreg só tem suporte no Windows 2000 (ele também pode funcionar nos Registros Windows NT 4 e Windows XP) e é implementado como um aplicativo "nativo" que usa a API nativa em vez de a API do Windows e, portanto, não será executado no Windows. Ao baixá-lo, você precisará instalá-lo em um conjunto de seis disquetes de inicialização de instalação do Windows, um caso entediante e demorado. Entramos em contato com os desenvolvedores do Chkreg e os incentivamos a divulgarem publicamente a versão para Windows que, segundo soubemos, os Serviços de Suporte ao Produto (PSS) da Microsoft está usando internamente, mas não temos informações sobre quando ou se eles a divulgarão.
Você pode baixar o Chkreg em
http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang=en
DIAGNÓSTICO DE MEMÓRIA DO WINDOWS
Uma das experiências mais frustrantes para um usuário do Windows é um sistema com falha. Na maioria dos casos, a falha é um driver de dispositivo de terceiros com bugs, que você pode corrigir desabilitando o driver ou atualizando para uma versão com uma correção. Cerca de 10% das falhas relatadas à Análise de Falhas do Microsoft Online (OCA) são causadas por problemas de hardware, a maioria relacionadas ao disco e à memória.
Se você receber falhas que a OCA não consegue diagnosticar ou suspeitar de um problema de memória, deverá passar alguns minutos com o Diagnóstico de Memória do Microsoft Windows (WMD), uma ferramenta de verificação de memória lançada recentemente pela Microsoft. O instalador do WMD solicita um disquete ou CD no qual ele salva o programa WMD. Ao inicializar um computador pelo disquete ou CD, você criou execuções do WMD e executa um teste completo da memória do computador, relatando seu progresso e quaisquer problemas na tela. Se você tiver erros de memória, o WMD poderá poupar a frustração de falhas do Windows.
Você pode baixar o Diagnóstico de Memória do Windows em http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang=en
PESQUISANDO INTERFACES NÃO DOCUMENTADAS
O recurso de status do DEP que descrevo na seção sobre aprimoramentos do Explorador de Processos anteriormente no boletim informativo depende de uma função não documentada. Pensei que muitos de vocês estariam interessados em aprender como descobri, sem acesso ao código-fonte do Windows (Dave Solomon, meu coautor do Windows Internals, tem acesso, mas eu não tenho), a função e seu uso adequado.
A primeira etapa no meu processo de análise foi supor que uma consulta do status do DEP para um processo rotearia pela NtQueryInformationProcess
API. Muitas funções da API do Windows que recuperam informações de um processo usam a NtQueryInformationProcess
interface para obter as informações. Essa função, que é prototipada no arquivo Ntddk.h do Kit de Desenvolvimento de Driver do Windows (DDK), pode ser acessada no modo de usuário pela interface de chamada do sistema "API nativa":
NTSYSAPI
NTSTATUS
NTAPI
NtQueryInformationProcess(
IN HANDLE ProcessHandle,
IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
OUT PULONG ReturnLength OPTIONAL
);
Seus dois primeiros argumentos são um identificador de um processo e uma "classe de informações de processo". A enumeração PROCESSINFOCLASS, as primeiras definições das quais são mostradas abaixo, também está incluída no NTDDK. H:
typedef enum _PROCESSINFOCLASS {
ProcessBasicInformation,
ProcessQuotaLimits,
ProcessIoCounters,
ProcessVmCounters,
ProcessTimes,
//...
Desde que o DEP foi introduzido no Windows XP SP2, eu não esperava que a classe de informações de consultas do DEP fosse listada nas versões do Windows XP ou do Windows Server 2003 do Ntddk.h, e uma rápida verificação confirmou sua ausência. Por isso, precisei investigar uma desmontagem do Ntoskrnl.exe do SP 2, a imagem em que NtQueryInformationProcess
é implementado, para ver se eu poderia determinar a classe de informações da consulta do DEP empiricamente.
Um desmontador usa uma imagem executável e lista as instruções de linguagem do assembly que compõem seu código. As instruções de linguagem do assembly são mapeadas diretamente nas instruções executadas por um processador. O desmontador que uso é IDA Pro, http://www.datarescue.com pois ele entende os arquivos de informações de depuração da Microsoft e integrará as informações à saída da linguagem assembly. Na desmontagem, descobri a sequência complicada das instruções no início do NtQueryInformationProcess que usa o parâmetro de classe de informações do processo e executa um código específico em cada classe. Como eu sabia que a classe de informações era nova, pude pular a execução das classes para as quais vi definições na enumeração do PROCESSINFOCLASS
Ntddk. Isso restringiu minha investigação às cerca de 3 ou 4 novas classes introduzidas desde o lançamento do Windows XP.
Uma das classes, aquela que corresponde a um ProcessInformationClass
valor de 0x22, levou-me por um caminho de código para uma função chamada MmGetExecuteOptions
, cujo início é mostrado aqui:
PAGE:0054D7CC ; __stdcall MmGetExecuteOptions(x)
PAGE:0054D7CC _MmGetExecuteOptions@4 proc near ; CODE XREF:
NtQueryInformationPro0063ess(x,x,x,x,x)+251C p
PAGE:0054D7CC
PAGE:0054D7CC arg_4 = dword ptr 8
PAGE:0054D7CC
PAGE:0054D7CC mov edi, edi
PAGE:0054D7CE push ebp
PAGE:0054D7CF mov ebp, esp
PAGE:0054D7D1 mov eax, large fs:124h
PAGE:0054D7D7 mov eax, [eax+44h]
PAGE:0054D7DA mov cl, [eax+6Bh]
PAGE:0054D7DD mov eax, [ebp+arg_4]
PAGE:0054D7E0 and dword ptr [eax], 0
PAGE:0054D7E3 xor edx, edx
PAGE:0054D7E5 inc edx
PAGE:0054D7E6 test dl, cl
PAGE:0054D7E8 jz short loc_54D7EC
PAGE:0054D7EA mov [eax], edx
PAGE:0054D7EC
PAGE:0054D7EC loc_54D7EC: ; CODE XREF:
MmGetExecuteOptions(x)+1C j
PAGE:0054D7EC test cl, 2
PAGE:0054D7EF jz short loc_54D7F4
PAGE:0054D7F1 or dword ptr [eax], 2
PAGE:0054D7F4
PAGE:0054D7F4 loc_54D7F4: ; CODE XREF:
MmGetExecuteOptions(x)+23 j
PAGE:0054D7F4 test cl, 4
PAGE:0054D7F7 jz short loc_54D7FC
PAGE:0054D7F9 or dword ptr [eax], 4
PAGE:0054D7FC
O IDA Pro me mostrou na primeira linha da saída acima que a função aceita um argumento, que eu suspeitei ser um ponteiro para uma variável que recebe as configurações do DEP. Despendi tempo suficiente examinando a desmontagem do kernel do Windows para reconhecer a sequência de instruções mov eax, large fs:124h; mov eax,[eax+44h]
como uma leitura da estrutura de dados de thread _KTHREAD
atual na estrutura da região de controle do processador (PCR) seguida por uma referência do KPROCESS
campo em deslocamento 0x44 na _KTHREAD
estrutura.
As instruções a seguir leem bits individuais no byte em deslocamento 0x6B na _KPROCESS
estrutura .
Sem saber o que está em deslocamento 0x6B em um _KPROCESS
, iniciei o Windbg no modo de depuração de kernel local e executei o comando dt _kprocess
, que relatou isso:
+0x06b Flags : _KEXECUTE_OPTIONS
Looking at that structure with another dt command showed the bit definitions:
+0x000 ExecuteDisable : Pos 0, 1 Bit
+0x000 ExecuteEnable : Pos 1, 1 Bit
+0x000 DisableThunkEmulation : Pos 2, 1 Bit
+0x000 Permanent : Pos 3, 1 Bit
+0x000 ExecuteDispatchEnable : Pos 4, 1 Bit
+0x000 ImageDispatchEnable : Pos 5, 1 Bit
+0x000 Spare : Pos 6, 2 Bits
Com certeza, esses bits estão relacionados ao DEP e parece que MmGetExecuteOptions
cópias dessa estrutura nos bits correspondentes no local de memória passados como o ProcessInformation
argumento para NtQueryInformationProcess
. Portanto, determinei que poderia consultar o status do DEP de um processo chamando NtQueryInformationProcess
com um ProcessInformationClass
de 0x22, o endereço de um DWORD
(inteiro de 4 bytes) e um comprimento de 4. Parece que MmGetExecuteOptions
retorna apenas os sinalizadores para o processo atual e ignora o ProcessHandle
parâmetro (Consultas do Explorador de Processos sobre o status de DEP de outros processos são feitas por seu driver auxiliar, que alterna para eles pela KeAttachProcess
API).
Terminei, exceto por algumas diferenças sutis na versão de 64 bits do Windows, já que disponibilizei uma versão de 64 bits do Explorador de Processos. No Windows de 64 bits MmGetExecuteOptions
, é necessário que ProcessHandle
seja -1 e retornará um STATUS_INVALID_PARAMETER
erro se o processo atual for um processo de 64 bits, já que o DEP está sempre ativado para processos de 64 bits. Usei o Windbg para desmontar a versão de 64 bits do Ntoskrnl.exe, embora desde então tenha obtido a versão do IDA Pro que dá suporte à desmontagem da imagem AMD64.
TREINAMENTO INTERNO
CONEXÕES DO WINDOWS EM SÃO FRANCISCO
Estou entregando duas sessões na conferência Conexões do Windows, realizada pela Windows IT Pro Magazine e acontece de 17 a 20 de abril em São Francisco. Uma delas é uma sessão geral chamada "Noções Básicas e Combatendo Malware: Vírus,Spyware e Rootkits" em que descrevo como o malware explora as vulnerabilidades para propagar e ignorar medidas de segurança, como elas se escondem usando técnicas sofisticadas chamadas "rootkits" e como detectá-las e limpá-las do seu sistema.
A outra sessão é "Solução de Problemas de Memória do Windows", em que mostro como responder às perguntas antigas "qual é o significado dos valores que vejo no Gerenciador de Tarefas", "o que está usando minha memória" e "de qual tamanho devo fazer o arquivo de paginação".
Baixe o folheto de conferência e registre-se em
http://www.devconnections.com/shows/win/default.asp?s=60#
CLASSES INTERNAS/SYSINTERNALS PRÁTICAS DO WINDOWS POR MARK RUSSINOVICH
Passe 5 dias com Mark Russinovich e David Solomon, autores do novo livro Windows Internals 4ª edição, aprendendo técnicas avançadas de solução de problemas enquanto se aprofundam nos aspectos internos do kernel do sistema operacional Windows NT/2000/XP/2003. Se você for um profissional de TI implantando e dando suporte a servidores e estações de trabalho do Windows, precisará ser capaz de cavar abaixo da superfície quando as coisas derem errado. Ter compreensão dos aspectos internos do sistema operacional Windows e saber como usar ferramentas avançadas de solução de problemas o ajudará a lidar com esses problemas e a entender os problemas de performance do sistema com mais eficiência. Entender os aspectos internos pode ajudar os programadores a melhor aproveitarem a plataforma Windows, bem como fornecerem técnicas avançadas de depuração. E como o curso foi desenvolvido com acesso completo ao código-fonte do kernel do Windows e aos desenvolvedores, você sabe que está recebendo a história real.
As próximas datas incluem:
- 06 A 10 DE JUNHO, ORLANDO, FLÓRIDA
- 11 A 15 DE JULHO, MUNIQUE, ALEMANHA
- 19 A 23 DE SETEMBRO, SÃO FRANCISCO, CALIFÓRNIA
- 05 A 9 DE DEZEMBRO, AUSTIN, TEXAS
OBSERVAÇÃO: essa é uma aula prática – cada participante deve trazer seu próprio laptop (as instruções de configuração serão enviadas antecipadamente).
Você obterá uma compreensão detalhada da arquitetura do kernel do Windows NT/2000/XP/2003, incluindo os aspectos internos dos processos, agendamento de threads, gerenciamento de memória, E/S, serviços, segurança, registro, e o processo de inicialização. Também serão abordadas técnicas avançadas de solução de problemas, como desinfecção de malware, análise de despejo de memória (tela azul) e problemas de inicialização anteriores. Você também aprenderá dicas avançadas sobre como usar as principais ferramentas www.sysinternals.com (como Filemon, Regmon, Process Explorer) para solucionar uma série de problemas de sistema e aplicativos, como computadores lentos, detecção de vírus, conflitos de DLL, e problemas de permissão e problemas de registro. Essas ferramentas são usadas diariamente pelo Suporte a Produtos da Microsoft e têm sido usadas efetivamente para resolver uma ampla variedade de problemas de área de trabalho e servidor, portanto, estar familiarizado com a operação e o aplicativo o ajudará a lidar com diferentes problemas no Windows. Serão dados exemplos do mundo real que mostram a aplicação bem-sucedida dessas ferramentas para resolver problemas reais.
Para se registrar, visite http://www.sysinternals.com/troubleshoot.shtml
Obrigado por ler o Boletim Informativo do Sysinternals.
Publicado quarta-feira, 05 de janeiro de 2005 16:36 por ottoh
[Arquivo de Boletins Informativos ^] [< Volume 6, Número 2] [Volume 7, Comunicado Especial >]