[Arquivo de Boletins Informativos ^] [< Volume 2, Número 3] [Volume 2, Número 5 >]
O Boletim Informativo Interno de Sistemas Volume 2, Número 4
www.sysinternals.com
Copyright © 2000 Mark Russinovich
30 de agosto de 2000 - Nesta edição:
EDITORIAL
NOVIDADES NO SYSINTERNALS
- ListDlls v2.23
- HandleEx v2.26
- ElogList v2.02
- LoggedOn v1.1
- Bluescreen v2.21
- PageDefrag v2.01
- LoadOrder v1.1
- ClockRes v1.0
- BgInfo v1.0
- Dentro do Windows 2000, 3º Ed.
- Sysinternals na Microsoft
INFORMAÇÕES INTERNAS
- O poder do privilégio DEBUG
- Novas APIs no Win2K SP1?
- WinDev 2000 West
O QUE ESTÁ POR VIR
- Tokenmon
PATROCINADOR: WINTERNALS SOFTWARE
O Boletim Informativo do Sysinternals é patrocinado pela Winternals Software, na Web em www.winternals.com. A Winternals Software é o principal desenvolvedor e provedor de ferramentas de sistemas avançados para Windows NT/2K. Os produtos Winternals Software incluem FAT32 para Windows NT 4.0, NTFSDOS Professional Edition (um driver NTFS de leitura/gravação para DOS) e Recuperação Remota.
O ERD Commander 2000 da Winternals Software é a versão mais recente da sua premiada linha de produtos ERD Commander. Os novos recursos do ERD Commander 2000, incluindo o Registro interno e editores de arquivos, tornam-no a ferramenta de recuperação mais avançada do Windows NT e do Windows 2000 existente. Você pode instalar o ERD Commander 2000 em disquetes, em um CD-ROM e até mesmo no disco rígido do sistema para acesso rápido, e o assistente de instalação facilita a adição de drivers SCSI e outros drivers de armazenamento em massa de terceiros. O ERD Commander 2000 custa US$ 349, ou apenas US$ 49 para os proprietários existentes do ERD Commander Professional. Saiba mais e baixe a versão de avaliação em www.winternals.com/products/erdcommander2000.shtml.
CO-PATROCINADOR: WINDOWS 2000 MAGAZINE
A Windows 2000 Magazine contém soluções práticas para pessoas que trabalham com o Windows NT/2000 todos os dias. Solicite um problema de exemplo gratuito agora e sem risco. Se você decidir continuar sua assinatura, receberá mais 13 números com 40% de desconto no preço da banca de notícias. Assine hoje em: http://www.win2000mag.com/sub.cfm?code=fs00inhs13
Olá, pessoal.
Bem-vindos ao boletim informativo do Sysinternals. Atualmente, o boletim informativo tem 25.000 assinantes.
Passo muito tempo no Regmon, Filemon e DebugView, ferramentas que Bryce e eu desenvolvemos na Sysinternals. Regmon é um monitor de acesso ao Registro (www.sysinternals.com/regmon.htm), Filemon é um monitor de acesso a arquivos (www.sysinternals.com/filemon.htm) e DebugView é um monitor de saída de depuração (www.sysinternals.com/dbgview.htm). Ocasionalmente, depararei-me com um driver de aplicativo ou dispositivo instalado em um dos meus vários sistemas que gera atividade contínua visível em uma dessas ferramentas. Não estou falando da atividade necessária, porém, as ações executadas pelo software geralmente são de natureza repetitiva e o exame dos rastreamentos de saída revela que o software usa uma técnica de sondagem em que o uso de algum outro mecanismo menos intrusivo é possível.
Por exemplo, vários scanners de vírus comerciais consultam seu arquivo de assinatura de vírus várias vezes por segundo para ver se ele foi atualizado. Um dos meus sistemas tem um driver de impressora de um grande fabricante de impressoras que gera continuamente instruções de depuração que, pela inclusão da palavra "sondagem", anunciam que estão sondando. Em um dos meus exemplos favoritos, um utilitário anunciado como melhorando o desempenho do sistema de um grande fornecedor de utilitário consulta várias das chaves do Registro do fornecedor várias vezes por segundo. Um exemplo de outro tipo de codificação desleixada está em um adaptador de rede de um dos principais fornecedores de rede que inclui um componente de software no modo de usuário contendo pontos de interrupção de depuração incorporados que disparam continuamente à medida que o software é executado. Se um aplicativo precisar detectar uma alteração no arquivo, ele poderá solicitar uma notificação de alteração de diretório. Da mesma forma, se precisar detectar alterações em uma chave do Registro, ele poderá solicitar uma notificação de alteração de chave, e o software comercial nunca deverá conter pontos de interrupção de depuração ou saída habilitados por padrão.
Porém, o exemplo mais notório, talvez, seja o Serviço de Programa do Microsoft Windows Media, que vem agrupado com o Windows 2000 Server (\Winnt\System32\Windows Media\Server\Npsm.exe
): ele lê os primeiros 2 KB de \Winnt\System32\Windows Media\Server\ASDB\mdsas.mdb
à taxa de cerca de 60 vezes por segundo em um sistema em que, de outra forma, não há atividade (incluindo serviços de mídia). Não há desculpa para isso, especialmente porque isso pode afetar negativamente o desempenho geral do servidor.
Tenho certeza de que, se você usou Regmon, Filemon ou DebugView por qualquer período de tempo, provavelmente se deparou com exemplos semelhantes. Quando você vir um, não apenas defina um filtro e esqueça-o, mas envie um email ao fornecedor reclamando de sua programação desleixada.
Passe o boletim informativo para amigos que você acha que podem estar interessados no seu conteúdo.
Agradecemos!
-Mark
NOVIDADES NO SYSINTERNALS
LISTDLLS V2.23
O ListDLLs é um utilitário de linha de comando que mostra informações detalhadas sobre as DLLs carregadas pelos processos. Por exemplo, o ListDLLs exibe o endereço de memória base, o tamanho, a versão e o caminho completo de cada DLL. Essa nova versão mostra a linha de comando que foi usada para iniciar um processo, incluindo todos os parâmetros que foram passados na linha de comando. Isso pode ajudá-lo a distinguir entre vários processos e solucionar problemas relacionados a opções de linha de comando específicas.
Baixe o ListDLLs v2.23 em www.sysinternals.com/listdlls.htm.
HANDLEEX V2.26
O HandleEx é um aplicativo que apresenta informações sobre quais identificadores e processos de DLLs foram abertos ou carregados. Sua tela consiste de duas sub-janelas. A parte superior sempre mostra uma lista dos processos ativos no momento, incluindo os nomes das suas contas proprietárias, enquanto as informações reveladas na janela inferior dependem do modo em que o HandleEx se encontra: se o HandleEx estiver no modo de identificador, você verá os identificadores que o processo selecionado na janela superior abriu; se estiver no modo DLL, você verá as DLLs e os arquivos mapeados na memória que o processo carregou.
A versão mais recente do HandleEx inclui vários novos recursos. Primeiro, assim como o ListDLLs, agora ele mostra a linha de comando que foi usada para iniciar um processo quando você exibe as propriedades do processo.
Uma das deficiências do HandleEx anterior a esta versão era que, embora exibisse o nome da conta na qual os processos e processos do sistema da sua sessão de logon estavam sendo executados, ele era incapaz de contornar o modelo de segurança do Windows NT/2000 para mostrar o proprietário dos processos iniciados de outras contas de usuário (o programa Pview dos Kits de Recursos do Windows NT/2000 também sofre essa limitação). Isso ficou extremamente evidente nos ambientes do NT 4 Terminal Server e dos Serviços de Terminal do Windows 2000, em que o HandleEx indicou que os processos iniciados de outras sessões de usuário tinham proprietários desconhecidos. O HandleEx v2.26 implementa um truque para que ele possa determinar a conta proprietária de todos os processos, sem exceção, tornando-a uma ferramenta ideal para ambientes de Serviços de Terminal.
O novo recurso final do HandleEx v2.26 permite que você force o fechamento de qualquer identificador aberto. Eu adicionei esse recurso depois de receber muitas solicitações para ele. Contudo, é recomendável que você o use com extrema cautela, pois normalmente os aplicativos não são escritos para esperar que de repente os identificadores se tornem inválidos, e os aplicativos com identificadores forçados fechados podem se comportar de forma errática ou falhar como resultado.
Baixe o HandleEx v2.26 em www.sysinternals.com/handleex.htm.
ELOGLIST V2.02
O Kit de Recursos do Windows 2000 inclui uma ferramenta chamada ELogDump que permite que você despeje registros de um log de eventos no computador local ou remoto. O ELogList é um clone do ElogDump que também permite que você especifique um nome de conta e uma senha opcionais para que você possa acessar os logs de eventos de um computador de uma conta diferente daquela da qual você está executando a ferramenta. Além disso, enquanto a ferramenta ElogDmp mostra entradas de log de eventos na sua forma bruta, dificultando a interpretação da saída, essa atualização do ElogList formata entradas de log de eventos para mostrar o texto como é exibido nos Visualizadores de Eventos do Windows NT/2000. Mesmo quando você exibe os logs de eventos dos sistemas remotos, o ElogList usa os arquivos de mensagem corretos no sistema remoto para seus dados de cadeia de caracteres de formatação.
Baixe o ElogList v2.02 em www.sysinternals.com/eloglist.htm.
LOGGEDON V1.1
O LoggedOn é um applet de linha de comando que informa quem está conectado a um computador específico, localmente ou pelos compartilhamentos de recursos. A atualização da versão 1.1 permite que você pesquise as sessões de logon na sua rede associadas a um usuário específico. Esse recurso é útil nas situações em que você quer executar atualizações em uma conta de usuário e precisa verificar se o usuário não está conectado no momento.
Baixe o LoggedOn v1.1 com origem completa em www.sysinternals.com/misc.htm.
BLUESCREEN V2.21
Sem em dúvidas, a maioria de vocês já está familiarizada com a famosa proteção de Tela azul do Sysinternals, que ilustra com precisão uma falha e reinicialização do Windows NT ou do Windows 2000. Desde a versão inicial, recebi continuamente solicitações de usuários do Windows 9x que desejam executar a proteção de tela nos seus computadores, então, finalmente, a portei no Windows 9x. No Windows 9x, ele simula uma falha e reinicialização do Windows 2000.
O único requisito para usar a proteção de tela de Tela Azul do Sysintenals no Windows 9x é que você deve obter uma cópia de um arquivo Ntoskrnl.exe do Windows 2000 para colocar no \Windows\System
diretório – Tela Azul requer o arquivo da tela inicial do Windows 2000.
Agora você pode realmente confundir os usuários desavisados do Windows 9x que voltam ao seus computador apenas para descobrirem que ele está preso em um ciclo de reinicialização e falha do Windows 2000!
Baixe o Bluescreen Screen Saver v2.21 em www.sysinternals.com/bluescreen.htm.
PAGEDEFRAG V2.01
O PageDefrag é um utilitário de desfragmentação que é executado no momento da inicialização para desfragmentar os arquivos de paginação do sistema e as pastas do Registro. O PageDefrag foi o primeiro utilitário capaz de desfragmentar as colmeias do Registro, mas desde o seu lançamento, essa funcionalidade foi adicionada a vários desfragmentadores comerciais. Porém, o PageDefrag ainda é gratuito e a versão 2.01 funciona no Windows 2000, bem como no Windows NT 4.
Se estiver interessado na interface de desfragmentação fornecida pelo Windows NT 4 e pelo Windows 2000, você pode obter informações sobre ela e baixar o código-fonte de um desfragmentador de arquivos interativo em www.sysinternals.com/defrag.htm. A Sysinternals documentou a interface de desfragmentação anos antes de a Microsoft incluí-la no Platform SDK, e vários desfragmentadores comerciais usaram nossa documentação e código de amostra.
Baixe o PageDefrag v2.01 em www.sysinternals.com/pagedfrg.htm. Exiba a documentação da interface desfragm em www.sysinternals.com/defrag.htm.
LOADORDER V1.1
Você já se perguntou em que ordem os drivers e serviços de dispositivo carregam e inicializam? Agora você pode descobrir facilmente. o LoadOrder é um utilitário que processa as informações em HKLM\System\CurrentControlSet\Services
para criar uma imagem da ordem de carregamento do driver e do serviço.
Baixe o LoadOrder v1.1 em www.sysinternals.com/misc.htm.
CLOCKRES V1.0
Nos meus artigos sobre o agendador, falei sobre o fato de que os quanta do thread do Windows NT/2000 (a duração da vez de um thread ser executado em uma CPU) são baseados na resolução do relógio do sistema. A resolução do relógio também afeta a latência de eventos baseados no temporizador do Windows. O artigo em www.sysinternals.com/timer.htm discute até mesmo a maneira como os aplicativos podem manipular a resolução do relógio. Na maioria dos SMPs, a resolução é de 15 ms e, nos uniprocessadores, de 10 ms, valores definidos pelos HALs (Camada de Abstração de Hardware) padrão do SMP e do uniprocessador.
Embora a maioria dos sistemas use os valores comuns listados acima, como você pode determinar a resolução real do relógio nos seus computadores? A resposta está na API GetSystemTimeAdjustment Win32, que informa se o sistema está aplicando um ajuste periódico ao relógio de hora do dia. Acontece que essa API também retorna o intervalo do relógio. O applet ClockRes usa a API para informar a resolução do relógio de um sistema.
Baixe o ClockRes mais origem em www.sysinternals.com/misc.htm.
BGINFO V1.0
Se você for um administrador responsável por vários servidores, provavelmente gastará uma quantidade significativa de tempo abrindo várias caixas de diálogo de informações para lembrar os valores de várias propriedades do sistema, como versão do service pack instalada, endereços de IP, nome do computador, tamanho da memória e velocidade do processador. Agora você pode ter todas essas informações em exibição simples na área de trabalho de cada servidor usando o utilitário BgInfo que Bryce desenvolveu.
Quando você o executa, o BgInfo cria uma tela de fundo da área de trabalho que relata automaticamente uma variedade de características úteis do sistema. Você pode colocar o BgInfo na sua pasta Iniciar para que as informações fiquem disponíveis sempre que você fizer logon e puder modificar os dados que o BgInfo mostra, até mesmo adicionando os seus próprios. Com o BgInfo instalado nos seus servidores, você economizará o tempo gasto procurando repetidamente por informações facilmente esquecidas.
Baixe o BgInfo v1.0 em www.sysinternals.com/bginfo.htm.
DENTRO DO WINDOWS 2000, 3ª EDIÇÃO
O livro oficial sobre os elementos internos do Windows 2000 já está disponível! Esta edição, de coautoria de David Solomon (www.solsem.com) e Mark Russinovich, é mais de 40% maior do que a anterior, com nova cobertura de rede, plug-and-play, gerenciamento de energia, serviços, Registro, WMI, inicialização e desligamento e armazenamento. Ela também inclui um CD com várias ferramentas avançadas, não disponíveis em nenhum outro lugar, para investigar os elementos internos do Windows 2000.
Consulte o sumário do livro e peça agora pelo www.sysinternals.com/insidew2k.htm.
SYSINTERNALS EM WWW.MICROSOFT.COM
Não tenho novos artigos de KB que façam referência ao Sysinternals para relatar, mas a Microsoft adicionou alguns links de alto nível ao Sysinternals na parte TechNet do seu site. A primeira está na coluna "Pergunte-nos sobre... Segurança" em www.microsoft.com/TechNet/security/au022800.asp, onde o colunista Joel Scambray avisa aos leitores que o NTFSDOS (www.sysinternals.com/ntfspro.htm) pode ser usado por um usuário mal-intencionado para alterar o conteúdo do Active Directory de um controlador de domínio do Windows 2000.
A segunda referência está na coluna "Dentro da Microsoft" em www.microsoft.com/technet/inside/default.asp. A coluna é estilo P e R e começa com duas perguntas relacionadas à determinação de qual aplicativo tem um arquivo específico aberto. No decorrer da resposta, em que os leitores são direcionados para HandleEx (www.sysinternals.com/handleex.htm) e NtHandle (www.sysinternals.com/nthandle.htm), o autor do artigo (o "Mole") afirma o seguinte sobre o Sysinternals: "Há uma tonelada de utilitários excelentes lá, muitos dos quais não custam um centavo. Até mesmo o Mole faz referência ao Sysinternals de tempos em tempos (O quê? Você pensou que o Mole guardava todas essas informações na cabeça dele?) Mais uma vez, é para lá que ele vai enviar você". Isso é o mais próximo que podemos esperar de um endosso oficial do site pela Microsoft.
INFORMAÇÕES INTERNAS
O POWER DO PRIVILÉGIO DE DEPURAÇÃO
Ao contrário de outros monitores de saída de depuração, incluindo o dbmon, meu monitor de saída de depuração DebugView (www.sysinternals.com/dbgview.htm) requer privilégios de administrador local para execução, pois instala um driver de dispositivo que captura a saída de depuração no modo kernel. Como resultado, recebi dezenas de emails de desenvolvedores reclamando que seu gerenciamento não lhes dará privilégios de administrador local, apenas o privilégio de Depuração. O argumento diz que o privilégio de Depuração está lá por um motivo, e que todos os desenvolvedores de aplicativos precisam desenvolver. Esses desenvolvedores pedem que eu altere o DebugView para que ele só instale o driver se o usuário tiver privilégios de administrador e, caso contrário, apenas colete a saída de depuração do Win32.
Essas solicitações sempre me fazem rir, porque o que o gerenciamento que argumenta sobre o privilégio de depuração não percebe é que esse privilégio abre a porta para privilégios de administrador local. Usando o privilégio de Depuração, um desenvolvedor pode ter um depurador anexado ao processo da Autoridade de Segurança Local (LSASS) e manipulá-lo para dar-lhes privilégios de administrador local no seu próximo logon. Ou eles podem injetar código em qualquer processo em execução na conta do sistema que adicionaria sua conta ao grupo de administradores locais. Quando explico isso aos desenvolvedores que reclamam, às vezes eles respondem que seu gerenciamento não compra o argumento. Até o momento, eu não tinha nada para eles levarem para a gerência e apresentarem seu caso, mas uma recente onda de emails desse tipo me fez tomar uma atitude.
O LogonEx, um utilitário que você pode baixar em www.sysinternals.com/logonex.zip, exibe graficamente a influência do privilégio de Depuração. O LogonEx funciona no Windows NT e no Windows 2000. Para melhor exibi-la, crie uma conta que seja uma conta de usuário normal, exceto com a adição do privilégio "Programas de Depuração". Faça logoff e faça logon nessa conta e execute o LogonEx. Você precisará do(s) arquivo(s) de símbolos do msv1_0.dll para a sua instalação específica (os desenvolvedores geralmente têm símbolos do sistema instalados), que o LogonEx usa para localizar o ponto de entrada da MsvpPasswordValidate
função e corrigi-lo. Depois que o LogonEx fizer sua aplicação de patch, você poderá fazer logon no sistema usando qualquer conta sem especificar uma senha. Conclua a demonstração fazendo logon como administrador e adicionando a conta que você criou ao grupo de administradores locais.
O LogonEx é apenas um exemplo de como o privilégio de Depuração permite que um desenvolvedor assuma o controle de um sistema, mas há muitos outros. Espero que o LogonEx convença o gerenciamento de que não faz sentido não conceder privilégios de administrador local aos desenvolvedores ( Observe, porém, que não estou falando de privilégios de administrador de domínio, o que é outra história: um administrador local reina supremo apenas sobre seu próprio computador, não sobre outros, enquanto um administrador de domínio governa uma rede).
NOVAS APIS NO WIN2K SP1?
Depois que muitos usuários encontraram problemas com os service packs (SP) do NT 4 que causavam novos bugs, a Microsoft adotou uma política de não incluir novas funcionalidades em um SP para minimizar a chance de introduzir novos problemas ao corrigir os antigos. Ou assim pensamos. O Windows 2000 SP 1 foi lançado recentemente e parecia não ter novas funcionalidades. Contudo, uma inspeção detalhada do Ntoskrnl.exe, o arquivo que contém o executivo do Windows 2000 e os componentes do kernel e do Ntdll.dll, a biblioteca que contém a API nativa e o carregador, revela que uma nova API fez sua estreia no SP 1.
A nova API consiste nas seguintes funções:
RtlTraceDatabaseAdd
RtlTraceDatabaseCreate
RtlTraceDatabaseDestroy
RtlTraceDatabaseEnumerate
RtlTraceDatabaseFind
RtlTraceDatabaseLock
RtlTraceDatabaseUnlock
RtlTraceDatabaseValidate
Os nomes das funções são bastante descritivos, portanto, essa é claramente uma API para eventos de registro. Um aspecto interessante da API é que sua implementação é duplicada em Ntdll e Ntoskrnl, que é diferente de outras APIs Ntdll que chamam os serviços de uma implementação no Ntoskrnl.
A análise da implementação da API mostra que ela é usada da seguinte forma: um aplicativo cria um banco de dados de rastreamento, que é armazenado na memória virtual do aplicativo, e adiciona entradas ao banco de dados. Em algum momento, o aplicativo pode enumerar o conteúdo do banco de dados e, quando terminar com o banco de dados, ele o excluirá. Estranhamente, não parece haver uma maneira de excluir entradas de banco de dados.
Para que serve essa nova API? Não há nada instalado na minha instalação do Windows 2000 Advanced Server com recursos razoavelmente completos, portanto, não está claro se há algo que o faça. Talvez essa tenha sido uma API de depuração que foi incluída acidentalmente no código de versão do SP 1.
Publicado na quarta-feira, 30 de abril de 2000, 19:07, por ottoh
[Arquivo de Boletins Informativos ^] [< Volume 2, Número 3] [Volume 2, Número 5 >]