Partilhar via


[Arquivo de boletins informativos ^] <[ Volume 2, Número 3] [Volume 2, Número 5 >]

O boletim informativo Systems Internals Volume 2, Número 4

www.sysinternals.com
Direitos Autorais © 2000 Mark Russinovich


30 de agosto de 2000 - Nesta edição:

  1. EDITORIAL

  2. O QUE HÁ DE NOVO NA SYSINTERNALS

    • ListDlls v2.23
    • HandleEx v2,26
    • ElogList v2.02
    • LoggedOn v1.1
    • Tela azul v2.21
    • PageDefrag v2.01
    • LoadOrder v1.1
    • Relógios v1.0
    • BgInfo v1.0
    • Dentro do Windows 2000, 3ª Ed.
    • Sysinternals na empresa Microsoft
  3. INFORMAÇÃO INTERNA

    • O poder do privilégio DEBUG
    • Novas APIs no Win2K SP1?
    • WinDev 2000 Oeste
  4. O QUE VEM POR AÍ

    • Tokenmon

COPATROCINADOR: WINTERNALS SOFTWARE

A Newsletter Sysinternals é patrocinada pela Winternals Software, na Web em www.winternals.com. A Winternals Software é a principal desenvolvedora e fornecedora 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 Remote Recover.

O ERD Commander 2000 da Winternals Software é o mais recente lançamento da sua premiada linha de produtos ERD Commander. Os novos recursos do ERD Commander 2000, incluindo o Registro integrado e editores de arquivos, fazem dele a ferramenta de recuperação mais avançada do Windows NT e Windows 2000 existente. Você pode instalar o ERD Commander 2000 em disquetes, um CD-ROM e até mesmo o disco rígido de um sistema para acesso rápido, e seu assistente de instalação facilita a adição de SCSI de terceiros e outros drivers de armazenamento em massa. O ERD Commander 2000 custa $349, ou apenas $49 para os proprietários existentes do ERD Commander Professional. Saiba mais e transfira a versão experimental em www.winternals.com/products/erdcommander2000.shtml.

COPATROCINADOR: WINDOWS 2000 MAGAZINE

Windows 2000 Magazine contém soluções práticas para pessoas que trabalham com o Windows NT/2000 todos os dias. Encomende uma edição de amostra grátis agora e sem risco. Se você decidir continuar sua assinatura, receberá mais 13 edições com 40% de desconto no preço da banca. Inscreva-se hoje em: http://www.win2000mag.com/sub.cfm?code=fs00inhs13

Olá a todos,

Bem-vindo à newsletter da Sysinternals. A newsletter conta atualmente com 25.000 assinantes.

Passo muito tempo em 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, vou me deparar com um aplicativo ou driver de dispositivo instalado em um dos meus vários sistemas que gera atividade contínua que é visível em uma dessas ferramentas. Não estou falando de atividade necessária, no entanto, as ações que o software executa são geralmente de natureza repetitiva e o exame dos traços de saída revela que o software usa uma técnica de sondagem onde o uso de algum outro mecanismo menos intrusivo é possível.

Por exemplo, vários verificadores de vírus comerciais consultam o seu ficheiro de assinatura de vírus várias vezes por segundo para ver se foi atualizado. Um dos meus sistemas tem um driver de impressora de um grande fabricante de impressoras que emite continuamente declarações de depuração que, através da inclusão da palavra "sondagem", anunciam que estão pesquisando. Em um dos meus exemplos favoritos, um utilitário anunciado como melhorando o desempenho do sistema de um grande fornecedor de utilitários consulta várias das chaves do Registro do fornecedor várias vezes por segundo. Um exemplo de outro tipo de codificação descuidada está em um adaptador de rede de um grande fornecedor de rede que inclui um componente de software de modo de usuário contendo pontos de interrupção de depuração incorporados que tropeçam continuamente à medida que o software é executado. Se um aplicativo precisar detetar uma alteração no arquivo, ele poderá solicitar uma notificação de alteração de diretório. Da mesma forma, se precisar detetar alterações em uma chave do Registro, ele pode solicitar uma notificação de alteração de chave, e o software comercial nunca deve conter saída de depuração ou pontos de interrupção de depuração habilitados por padrão.

Talvez o exemplo mais flagrante, no entanto, é o Microsoft Windows Media Program Service que vem junto com o Windows 2000 Server (\Winnt\System32\Windows Media\Server\Npsm.exe): ele lê os primeiros 2 KB de à taxa de cerca de 60 vezes por segundo em um sistema onde de outra forma não há atividade (incluindo nenhum serviço de \Winnt\System32\Windows Media\Server\ASDB\mdsas.mdb 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 já se deparou com exemplos semelhantes. Quando vir um, não defina apenas um filtro e esqueça-o, envie um e-mail ao fornecedor reclamando de sua programação descuidada.

Por favor, passe a newsletter para amigos que você acha que podem estar interessados em seu conteúdo.

Obrigado!

-Marcar

O QUE HÁ DE NOVO NA SYSINTERNALS

LISTDLLS V2.23

ListDLLs é um utilitário de linha de comando que mostra informações detalhadas sobre as DLLs que os processos carregaram. Por exemplo, ListDLLs exibe o endereço de memória base, tamanho, versão e caminho completo de cada DLL. Esta nova versão mostra a linha de comando que foi usada para iniciar um processo, incluindo quaisquer 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.

Download ListDLLs v2.23 em www.sysinternals.com/listdlls.htm.

HANDLEEX V2,26

HandleEx é um aplicativo que apresenta informações sobre quais identificadores e processos DLLs abriram ou carregaram. Sua exibição consiste em duas sub-janelas. A parte superior sempre mostra uma lista dos processos atualmente ativos, incluindo os nomes de suas próprias contas, enquanto as informações reveladas na janela inferior dependem do modo em que o HandleEx está: se o HandleEx estiver no modo handle, você verá as alças 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 última versão do HandleEx inclui vários novos recursos. Primeiro, como ListDLLs, ele agora mostra a linha de comando que foi usada para iniciar um processo quando você visualiza as propriedades do processo.

Uma das deficiências do HandleEx antes desta versão era que, embora exibisse o nome da conta na qual os processos do sistema e os processos da sua sessão de login estavam sendo executados, ele era incapaz de contornar o modelo de segurança do Windows NT/2000 para mostrar o proprietário de processos iniciados de outras contas de usuário (o programa Pview do Windows NT/2000 Resource Kits também sofre essa limitação). Isso foi dolorosamente evidente nos ambientes NT 4 Terminal Server e Windows 2000 Terminal Services, onde o HandleEx indicou que os processos iniciados a partir de outras sessões de usuário tinham proprietários desconhecidos. O HandleEx v2.26 implementa um truque para que possa determinar a conta proprietária de todos os processos, sem exceção, tornando-o 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 alça aberta. Eu adicionei este recurso depois de receber muitos pedidos para ele. No entanto, recomendo que você o use com extrema cautela, porque os aplicativos geralmente não são escritos para esperar que os identificadores possam se tornar inválidos de repente, e os aplicativos com alças fechadas forçadas podem se comportar de forma errática ou falhar como resultado.

Download HandleEx v2.26 em www.sysinternals.com/handleex.htm.

ELOGLIST V2.02

O Windows 2000 Resource Kit inclui uma ferramenta chamada ELogDmp que permite despejar registros de um log de eventos no computador local ou remoto. ELogList mais poderoso do que ElogDmp porque também permite especificar um nome de conta opcional e senha para que você possa acessar os logs de eventos de um computador a partir de uma conta diferente daquela a partir da qual você está executando a ferramenta. Além disso, enquanto a ferramenta ElogDmp mostra entradas de log de eventos em sua forma bruta, tornando a saída difícil de interpretar, esta atualização ElogList formata entradas de log de eventos para mostrar texto como ele aparece nos Visualizadores de Eventos do Windows NT/2000. Mesmo quando você exibe logs de eventos de sistemas remotos, ElogList usa os arquivos de mensagem corretos no sistema remoto para seus dados de cadeia de caracteres de formatação.

Download ElogList v2.02 em www.sysinternals.com/eloglist.htm.

LOGGEDON V1.1

LoggedOn é um applet de linha de comando informa quem está conectado a um determinado computador, localmente ou por meio de compartilhamentos de recursos. A atualização da versão 1.1 permite pesquisar na rede sessões de logon associadas a um usuário específico. Esse recurso é útil em situações em que você deseja executar atualizações em uma conta de usuário e precisa verificar se o usuário não está conectado no momento.

Download LoggedOn v1.1 com fonte completa em www.sysinternals.com/misc.htm.

TELA AZUL V2.21

A maioria de vocês já está, sem dúvida, familiarizada com o famoso protetor de tela azul Sysinternals, que retrata com precisão uma falha e reinicialização do Windows NT ou Windows 2000. Desde o seu lançamento inicial, tenho recebido continuamente solicitações de usuários do Windows 9x que querem executar o protetor de tela em seus computadores, então eu finalmente o portei para o Windows 9x. No Windows 9x, simula uma falha e reinicialização do Windows 2000.

O único requisito para usar o protetor de tela Sysintenals Blue Screen no Windows 9x é que você obtenha uma cópia de um arquivo de Ntoskrnl.exe do Windows 2000 para colocar no \Windows\System diretório - Tela azul requer o arquivo para a tela inicial do Windows 2000.

Agora você pode realmente confundir os usuários desavisados do Windows 9x que voltam ao seu computador apenas para descobrir que ele está preso em uma falha do Windows 2000 e ciclo de reinicialização!

Download Bluescreen Screen Saver v2.21 em www.sysinternals.com/bluescreen.htm.

PAGEDEFRAG V2.01

PageDefrag é um utilitário de desfragmentação que é executado no momento da inicialização para desfragmentar os arquivos de paginação do seu sistema e as seções do Registro. PageDefrag foi o primeiro utilitário capaz de desfragmentar colmeias do Registro, mas desde o seu lançamento essa funcionalidade foi adicionada a vários desfragmentadores comerciais. No entanto, PageDefrag ainda é gratuito, e versão 2.01 funciona no Windows 2000, bem como Windows NT 4.

Se você estiver interessado na interface de desfragmentação fornecida pelo Windows NT 4 e Windows 2000, você pode aprender sobre isso e baixar o código-fonte para um desfragmentador de arquivo 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 fizeram uso de nossa documentação e código de exemplo.

Download PageDefrag v2.01 em www.sysinternals.com/pagedfrg.htm. Veja a documentação da interface de desfragmentação em www.sysinternals.com/defrag.htm.

LOADORDER V1.1

Você já se perguntou em que ordem os drivers de dispositivo e serviços são carregados e inicializados? Agora você pode descobrir facilmente. LoadOrder é um utilitário que processa as informações para HKLM\System\CurrentControlSet\Services criar uma imagem do driver e da ordem de carga de serviço.

Download LoadOrder v1.1 em www.sysinternals.com/misc.htm.

RELÓGIOS V1.0

Em meus artigos sobre o agendador eu falei sobre o fato de que o Windows NT/2000 thread quanta (o comprimento da volta de um thread para executar em uma CPU) é baseado na resolução do relógio do sistema. A resolução do relógio também afeta a latência de eventos baseados em temporizador do Windows. O artigo em www.sysinternals.com/timer.htm até discute a maneira como os aplicativos podem manipular a resolução do relógio. Na maioria dos SMPs, a resolução é de 15ms, e em uniprocessadores seus 10ms, valores que são definidos pelo padrão SMP e uniprocessor HALs (Hardware Abstraction Layer).

Embora a maioria dos sistemas use os valores comuns listados acima, como você pode determinar a resolução real do relógio em 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.

Faça o download do ClockRes plus source em www.sysinternals.com/misc.htm.

BGINFO V1.0

Se você é um administrador responsável por vários servidores, provavelmente gasta uma quantidade significativa de tempo abrindo várias caixas de diálogo de informações para se lembrar dos valores de várias propriedades do sistema, como a versão do service pack instalado, endereços IP, nome do computador, tamanho da memória e velocidade do processador. Agora você pode ter todas essas informações à vista na área de trabalho de cada servidor usando o utilitário BgInfo que Bryce desenvolveu.

Quando você o executa, o BgInfo cria um plano de fundo da área de trabalho que relata automaticamente uma variedade de características úteis do sistema. Você pode colocar BgInfo em sua pasta Iniciar para que as informações estejam disponíveis para você sempre que você fizer login, e você pode modificar os dados que BgInfo mostra, até mesmo adicionando o seu próprio. Com o BgInfo instalado em seus servidores, você economizará o tempo gasto repetidamente procurando informações facilmente esquecidas.

Download BgInfo v1.0 em www.sysinternals.com/misc.htm.

POR DENTRO DO WINDOWS 2000, 3ª EDIÇÃO

O livro oficial sobre os internos do Windows 2000 já está disponível! Esta edição, em coautoria com 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. Ele também inclui um CD com várias ferramentas poderosas, não disponíveis em nenhum outro lugar, para investigar os internos do Windows 2000.

Veja o sumário do livro e encomende agora através www.sysinternals.com/insidew2k.htm.

SYSINTERNALS NA WWW.MICROSOFT.COM

Não tenho nenhum novo artigo da Base de Dados de Conhecimento que faça referência a Sysinternals para relatar, mas a Microsoft adicionou alguns links de alto perfil para Sysinternals na parte TechNet de seu site. A primeira está no "Pergunte-nos sobre... Security" no www.microsoft.com/TechNet/security/au022800.asp, onde o colunista Joel Scambray avisa os leitores que NTFSDOS (www.sysinternals.com/ntfspro.htm) pode ser usado por um usuário mal-intencionado para alterar o conteúdo do Ative Directory de um controlador de domínio do Windows 2000.

A segunda referência está na coluna "Por dentro da Microsoft" em www.microsoft.com/technet/inside/default.asp. A coluna é no estilo de Perguntas e Respostas e começa com duas perguntas relacionadas a determinar qual aplicativo tem um arquivo específico aberto. No decorrer da resposta, onde os leitores são apontados para HandleEx (www.sysinternals.com/handleex.htm) e NtHandle (www.sysinternals.com/nthandle.htm), o autor do artigo (o "Mole") afirma o seguinte sobre Sysinternals: "Há apenas uma tonelada de grandes utilidades que não lhe custarão um centavo. Até mesmo a Toupeira se refere a Sysinternals de tempos em tempos (O quê? Você pensou que talvez Mole guarde todas essas informações em sua cabeça?). Mais uma vez, é para lá que ele vai te enviar." Isto é tão próximo de um endosso oficial do site pela Microsoft quanto podemos esperar.

INFORMAÇÃO INTERNA

O PODER DO PRIVILÉGIO DE DEPURAÇÃO

Ao contrário de outros monitores de saída de depuração, incluindo dbmon, meu monitor de saída de depuração DebugView (www.sysinternals.com/dbgview.htm) requer privilégios de administrador local para execução, porque instala um driver de dispositivo que captura a saída de depuração do modo kernel. Como resultado, recebi dezenas de e-mails de desenvolvedores reclamando que seu gerenciamento não lhes dará privilégios de administrador local, apenas o privilégio de Depuração. O argumento é que o privilégio Debug está lá por um motivo, e todos os desenvolvedores de aplicativos precisam desenvolver. Esses desenvolvedores me pedem para alterar o DebugView para que ele só instale o driver se o usuário tiver privilégios de administrador e, caso contrário, apenas coleta a saída de depuração do Win32.

Essas solicitações sempre me dão uma risada, porque o que o gerenciamento que faz o argumento Debug-privilege 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 de modo a dar-lhes privilégios de administrador local em seu próximo login. 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 eu explico isso para os desenvolvedores reclamantes, eles às vezes respondem que sua gerência não compra o argumento. Até agora, não tive nada para eles levarem de volta à sua gerência para apresentar o seu caso, mas uma recente onda de tais e-mails levou-me a tomar medidas.

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. LogonEx funciona no Windows NT e Windows 2000. Para melhor mostrá-lo, crie uma conta que seja uma conta de usuário normal, exceto com a adição do privilégio "Debug Programs". Faça logoff e login nessa conta e execute o LogonEx. Você precisará do(s) arquivo(s) de símbolo para msv1_0.dll para sua instalação específica (os desenvolvedores geralmente têm símbolos do sistema instalados), que o LogonEx usa para localizar o MsvpPasswordValidate ponto de entrada da função e corrigi-la. Depois que o LogonEx fizer seu patch, você poderá fazer login no sistema usando qualquer conta sem especificar uma senha. Conclua a demonstração iniciando sessão como administrador e adicionando a conta que criou ao grupo de administradores locais.

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 a gerência de que não faz qualquer sentido não dar aos desenvolvedores privilégios de administrador local (Observe, no entanto, que não estou falando de privilégios de administrador de domínio, que é outra história que um administrador local reina supremo apenas sobre seu próprio computador, não sobre qualquer outro, enquanto um administrador de domínio governa uma rede).

NOVAS APIS NO WIN2K SP1?

Depois que muitos usuários encontraram problemas com service packs (SP) NT 4 causando novos bugs, a Microsoft adotou uma política de não incluir nenhuma nova funcionalidade em um SP, a fim de minimizar a chance de que eles introduzissem novos problemas ao corrigir os antigos. Ou assim pensávamos. O Windows 2000 SP 1 foi lançado recentemente e parecia não ter nenhuma nova funcionalidade. No entanto, uma inspeção detalhada do Ntoskrnl.exe, o arquivo que contém os componentes executivo e kernel do Windows 2000, e 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, então esta é claramente uma API para registrar eventos. Um aspeto interessante da API é que sua implementação é duplicada em Ntdll e Ntoskrnl, isso é diferente de outras APIs Ntdll que chamam os serviços de uma implementação em Ntoskrnl.

O exame da implementação da API mostra que ela é usada assim: 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 termina com o banco de dados, ele o exclui. Estranhamente, não parece haver uma maneira de excluir entradas de banco de dados.

O que faz uso desta nova API? Nada que está instalado na minha instalação bastante completa do Windows 2000 Advanced Server, então não está claro que algo faz. Talvez esta tenha sido uma API de depuração que foi acidentalmente incluída no código de lançamento do SP 1.

Publicado quarta-feira, 30 de agosto de 2000 19:07 por ottoh

[Arquivo de boletins informativos ^] <[ Volume 2, Número 3] [Volume 2, Número 5 >]