30 de agosto de 2000 - Nesta edição:
EDITORIAL
O QUE HÁ DE NOVO NA SYSINTERNALS
- ListDlls v2.23
- HandleEx v2.26
- ElogList v2.02
- Registrado Em v1.1
- Bluescreen v2.21
- PageDefrag v2.01
- LoadOrder v1.1
- ClockRes v1.0
- BgInfo v1.0
- Dentro Windows 2000, 3º Ed.
- Sysinternals na Microsoft
INFORMAÇÃO INTERNA
- O poder do privilégio DEBUG
- Novas APIs no Win2K SP1?
- WinDev 2000 Oeste
O QUE ESTÁ POR VIR
- Tokenmon
COPATROCINADOR: SOFTWARE WINTERNALS
A Newsletter Sysinternals é patrocinada pela Winternals Software, na Web em www.winternals.com. Winternals Software é o principal desenvolvedor e fornecedor de ferramentas avançadas de sistemas para Windows NT/2K. Os produtos de Software Winternals incluem FAT32 para Windows NT 4.0, NTFSDOS Professional Edition (um controlador NTFS de leitura/escrita para DOS) e Recuperação Remota.
Winternals Software's ERD Commander 2000 é o mais recente lançamento na sua premiada linha de produtos ERD Commander. As novas funcionalidades do Comandante ERD 2000, incluindo editores de registo e arquivos incorporados, fazem dele a ferramenta de recuperação mais avançada Windows NT e Windows 2000. Você pode instalar O Comandante ERD 2000 em discos floppy, um CD-ROM, e até mesmo o disco rígido de um sistema para acesso rápido, e o seu assistente de instalação faz com que a adição de SCSI de terceiros e outros controladores de armazenamento em massa seja uma brisa. O Comandante 2000 da ERD é $349, ou apenas $49 para os atuais proprietários profissionais do Comandante ERD. Saiba mais e descarregue a versão experimental em www.winternals.com/products/erdcommander2000.shtml.
COPATROCINADOR: REVISTA WINDOWS 2000
Windows revista 2000 contém soluções práticas para pessoas que trabalham com Windows NT/2000 todos os dias. Encomende uma amostra gratuita agora e sem risco. Se decidir continuar a sua subscrição, receberá mais 13 edições a 40% do preço da banca. Inscreva-se hoje em: http://www.win2000mag.com/sub.cfm?code=fs00inhs13
Olá a todos,
Bem-vindos ao boletim dos Sysinternals. O boletim tem atualmente 25.000 subscritores.
Passo muito tempo em Regmon, Filemon e DebugView, ferramentas que o Bryce e eu desenvolvemos na Sysinternals. Regmon é um monitor de acesso ao registo (www.sysinternals.com/regmon.htm), Filemon é um monitor de acesso a ficheiros (www.sysinternals.com/filemon.htm), e DebugView é um monitor de saída de depurador (www.sysinternals.com/dbgview.htm). Ocasionalmente, vou encontrar uma aplicação ou controlador de dispositivo instalado num dos meus vários sistemas que gera atividade contínua que é visível numa destas ferramentas. Não estou a falar da atividade necessária, no entanto as ações que o software executa são geralmente de natureza repetitiva e o exame dos vestígios 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 scanners 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 condutor de impressora de um grande fabricante de impressoras que continuamente depuram declarações que, através da sua inclusão da palavra "sondagem", anunciam que estão a votar. Num dos meus exemplos favoritos, um utilitário anunciado como melhorando o desempenho do sistema a partir de um grande fornecedor de serviços públicos consulta várias das chaves de registo do fornecedor várias vezes por segundo. Um exemplo de outro tipo de codificação desleixada está num adaptador de rede de um grande fornecedor de rede que inclui um componente de software de modo de utilizador contendo breakpoints incorporados que tropeçam continuamente à medida que o software executa. Se um pedido precisar de detetar uma alteração para arquivar, pode solicitar uma notificação de alteração de diretório. Da mesma forma, se precisar de detetar alterações numa chave de registo, pode solicitar uma notificação de alteração chave, e o software comercial nunca deve conter saída de depuração ou depuração depuração que são ativadas por padrão.
Talvez o exemplo mais flagrante, no entanto, seja o Microsoft Windows Media Program Service que vem agregado com Windows 2000 Server ( \Winnt\System32\Windows Media\Server\Npsm.exe ): lê-se o primeiro 2 KB de \Winnt\System32\Windows Media\Server\ASDB\mdsas.mdb cerca de 60 vezes por segundo num sistema onde de outra forma não há atividade (incluindo nenhum serviço de mídia). Não há desculpa para isso, especialmente porque isto pode afetar negativamente o desempenho geral do servidor.
Tenho a certeza que se usaste o Regmon, o Filemon ou o DebugView durante algum tempo, provavelmente encontraste exemplos semelhantes. Quando vires um, não bastas definir um filtro e esquecer isso, envia um e-mail ao vendedor a queixar-se da sua programação descuidada.
Por favor, passe a newsletter a amigos que acha que podem estar interessados no seu conteúdo.
Obrigado!
- Marca
O QUE HÁ DE NOVO NA SYSINTERNALS
LISTDLLS V2.23
ListDLLs é um utilitário de linha de comando que mostra informações detalhadas sobre os DLLs que os processos carregaram. Por exemplo, listDLLs apresenta o endereço de memória base, tamanho, versão e caminho completo de cada DLL. Esta nova versão mostra-lhe a linha de comando que foi usada para lançar um processo, incluindo quaisquer parâmetros que foram transmitidos na linha de comando. Isto pode ajudá-lo a distinguir entre vários processos e problemas de resolução de problemas relacionados com opções específicas de linha de comando.
Baixar ListDLLs v2.23 em www.sysinternals.com/listdlls.htm.
HANDLEEX V2.26
HandleEx é uma aplicação que apresenta informações sobre quais os processos de cabos e DLLs abertos ou carregados. O seu ecrã é composto por duas sub-janelas. O topo apresenta sempre uma lista dos processos atualmente ativos, incluindo os nomes das suas contas próprias, enquanto as informações reveladas na janela inferior dependem do modo em que o HandleEx está: se o HandleEx estiver no modo de manuseamento, verá as pegas que o processo selecionado na janela superior abriu; se estiver no modo DLL, verá os DLLs e os ficheiros mapeados pela memória que o processo carregou.
O mais recente lançamento do HandleEx inclui várias novidades. Primeiro, tal como o ListDLLs, mostra agora a linha de comando que foi usada para lançar um processo quando vê as propriedades do processo.
Uma das falhas do HandleEx antes desta versão foi que, embora apresentasse o nome da conta em que os processos e processos do sistema da sua sessão de login estavam a ser executados, era incapaz de contornar o modelo de segurança Windows NT/2000 para mostrar que o proprietário de processos iniciados a partir de outras contas de utilizador (o programa Pview a partir do Windows NT/2000 Kits de Recursos também sofre esta limitação). Isto 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 utilizadores 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-a uma ferramenta ideal para ambientes de Serviços Terminais.
A nova funcionalidade final do HandleEx v2.26 permite-lhe forçar qualquer pega aberta. Adicionei esta funcionalidade depois de receber muitos pedidos para o mesmo. Recomendo que o utilize com extrema cautela, no entanto, porque as aplicações geralmente não são escritas para esperar que as pegas possam subitamente tornar-se inválidas, e aplicações com alças forçadas fechadas podem comportar-se de forma errática ou despenhar-se como resultado.
Baixe HandleEx v2.26 em www.sysinternals.com/handleex.htm.
ELOGLIST V2.02
O Windows Kit de Recursos de 2000 inclui uma ferramenta chamada ELogDmp que permite despejar registos de um registo de eventos no local ou num computador remoto. O ELogList é mais potente do que o ElogDmp porque também permite especificar um nome de conta e palavra-passe opcionais para que possa aceder aos registos de eventos de um computador a partir de uma conta diferente da que está a executar a ferramenta. Além disso, enquanto a ferramenta ElogDmp mostra entradas de registo de eventos na sua forma bruta, dificultando a interpretação da saída, esta atualização ElogList apresenta entradas de registo de eventos para mostrar texto tal como aparece no Windows NT/2000 Event Viewers. Mesmo quando exibe registos de eventos a partir de sistemas remotos, o ElogList utiliza os ficheiros de mensagem corretos no sistema remoto para os seus dados de cadeia de formatação.
Baixar ElogList v2.02 em www.sysinternals.com/eloglist.htm.
LOGGEDON V1.1
O LoggedOn é um applet de linha de comando que lhe diz quem está ligado a um determinado computador, localmente ou através de partilhas de recursos. A atualização da versão 1.1 permite pesquisar na sua rede sessões de início de sessão associadas a um determinado utilizador. Esta funcionalidade é útil em situações em que pretende realizar atualizações para uma conta de utilizador e precisa de verificar se o utilizador não está atualmente ligado.
Baixar Registro No.1 v1.1 com origem completa em www.sysinternals.com/misc.htm.
BLUESCREEN V2.21
A maioria de vocês já está, sem dúvida, familiarizada com o famoso protetor de ecrã Azul Sysinternals, que retrata com precisão um Windows NT ou Windows crash e reboot de 2000. Desde o seu lançamento inicial, recebi continuamente pedidos de utilizadores Windows 9x que querem executar o protetor de ecrã nos seus computadores, por isso, finalmente, a vi para Windows 9x. No Windows 9x simula um Windows acidente de 2000 e reinicializa.
O único requisito para a utilização do protetor de ecrã azul Sysintenals no Windows 9x é que obtenha uma cópia de um ficheiro Ntoskrnl.exe de Windows de 2000 para colocar no \Windows\System diretório - O Ecrã Azul requer o ficheiro para o ecrã de salpicos de Windows 2000.
Agora pode confundir utilizadores insuspeitos Windows 9x que voltam ao seu computador apenas para descobrir que está preso num ciclo de Windows de 2000 e reinicialização!
Baixe Bluescreen Screen Saver v2.21 em www.sysinternals.com/bluescreen.htm.
PAGEDEFRAG V2.01
PageDefrag é um utilitário de desfrag que funciona no momento do arranque para desfragmentar os ficheiros de paging do seu sistema e colmeias de registo. O PageDefrag foi o primeiro utilitário capaz de desfragmentar colmeias de registo, mas desde o seu lançamento essa funcionalidade foi adicionada a vários defraggers comerciais. No entanto, o PageDefrag ainda é gratuito, e a versão 2.01 funciona em Windows 2000, bem como Windows NT 4.
Se estiver interessado na interface de desfrag fornecida por Windows NT 4 e Windows 2000, poderá aprender sobre isso e transferir código fonte para um desfragmentr de ficheiros interativos www.sysinternals.com/defrag.htm. A Sysinternals documentou a interface de desfrag anos antes da Microsoft incluí-la na Plataforma SDK, e vários desfragmentadores comerciais utilizaram a nossa documentação e código de amostra.
Baixar páginaDefrag v2.01 em www.sysinternals.com/pagedfrg.htm. Consulte a documentação da interface de defrag www.sysinternals.com/defrag.htm.
LOADORDER V1.1
Já se perguntou em que ordem os condutores e serviços carregam e iniciais? Agora pode facilmente descobrir. O LoadOrder é um utilitário que processa as informações em baixo HKLM\System\CurrentControlSet\Services para construir uma imagem da ordem de carga do condutor e do serviço.
Descarregue LoadOrder v1.1 em www.sysinternals.com/misc.htm.
RELOJOEIROS V1.0
Nos meus artigos sobre o agendador, falei sobre o facto de que Windows NT/2000 thread quanta (o comprimento da vez de um fio para correr num CPU) é baseado na resolução do relógio do sistema. A resolução do relógio também afeta a latência de eventos com base no temporizador Windows. O artigo na www.sysinternals.com/timer.htm discute mesmo a forma como as aplicações podem manipular a resolução do relógio. Na maioria dos SMPs, a resolução é de 15ms, e em uniprocessadores os seus 10ms, valores que são definidos pelos HALs padrão SMP e UNIPROCESSOR (Camada de Abstração de Hardware).
Embora a maioria dos sistemas utilize os valores comuns acima indicados, como pode determinar a resolução real do relógio nos seus computadores? A resposta encontra-se no GetSystemTimeAdjustment Win32 API, que lhe indica se o sistema está a aplicar um ajuste periódico ao relógio de horas do dia. Acontece que esta API também devolve o intervalo do relógio. O ClockRes applet usa a API para lhe dizer a resolução do relógio de um sistema.
Baixar ClockRes mais fonte em www.sysinternals.com/misc.htm.
BGINFO V1.0
Se é um administrador responsável por vários servidores, provavelmente passa uma quantidade significativa de tempo a abrir vários diálogos de informação para se lembrar dos valores de várias propriedades do sistema, tais como versão de pacote de serviço instalado, endereços IP, nome do computador, tamanho de memória e velocidade do processador. Agora pode ter toda esta informação à vista de todos no ambiente de trabalho de cada servidor utilizando o utilitário BgInfo que o Bryce desenvolveu.
Ao executá-lo, o BgInfo cria um fundo de ambiente de trabalho que reporta automaticamente uma variedade de características úteis do sistema. Pode colocar o BgInfo na sua pasta Iniciar para que as informações lhe possam estar disponíveis sempre que iniciar sessão e possa modificar os dados que a BgInfo mostra, acrescentando mesmo os seus. Com o BgInfo instalado nos seus servidores, irá poupar o tempo que passou repetidamente à procura de informações facilmente esquecidas.
Baixar BgInfo v1.0 em www.sysinternals.com/misc.htm.
INSIDE WINDOWS 2000, 3ª EDIÇÃO
O livro oficial sobre os internos de Windows 2000 já está disponível! Esta edição, coautoria de David Solomon (www.solsem.com) e Mark Russinovich, é mais de 40% maior do que a anterior, com nova cobertura de networking, plug-and-play, gestão de energia, serviços, registo, WMI, arranque e encerramento, e armazenamento. Também inclui um CD com várias ferramentas poderosas, não disponíveis em nenhum outro lugar, para investigar Windows 2000 internos.
Consulte a tabela de conteúdos e encomendas do livro agora através de www.sysinternals.com/insidew2k.htm.
SYSINTERNALS NA WWW.MICROSOFT.COM
Não tenho novos artigos da KB que refiram sysinternals para reportar, mas a Microsoft adicionou algumas ligações bastante importantes aos Sysinternals na parte techNet do seu site. A primeira está no "Pergunta-nos sobre... Coluna de segurança em www.microsoft.com/TechNet/security/au022800.asp, onde o colunista Joel Scambray avisa os leitores que o NTFSDOS (www.sysinternals.com/ntfspro.htm) pode ser usado por um utilizador malicioso para alterar o conteúdo de um diretório ativo do controlador de domínio de Windows 2000.
A segunda referência está na coluna "Inside Microsoft" em www.microsoft.com/technet/inside/default.asp. A coluna é estilo Q & A e começa com duas questões relacionadas com a determinação de qual a aplicação que tem um ficheiro 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 (a "Toupeira") afirma isto sobre os Sysinternals: "Há apenas uma TONELADA de grandes utilitários que muitos não lhe custarão um tostão. Até a Mole refere-se aos Sysinternals de vez em quando (O quê? Pensaste que talvez o Mole guardasse toda esta informação na cabeça dele? Mais uma vez, é para aqui que ele vai enviar-lhe. Isto é o mais próximo de um endosso oficial do site pela Microsoft como podemos esperar.
INFORMAÇÃO INTERNA
O PODER DO PRIVILÉGIO DE DEPURO
Ao contrário de outros monitores de saída de depuragem, incluindo dbmon, o meu monitor depuro depuro DebugView (www.sysinternals.com/dbgview.htm) requer privilégios de administrador local para a execução, porque instala um controlador de dispositivo que captura a saída de depurg em modo kernel. Como resultado, recebi dezenas de e-mails de programadores a queixarem-se que a sua gerência não lhes dará privilégios de administrador local, apenas o privilégio de Debug. O argumento diz que o privilégio Debug está lá por uma razão, e todos os seus desenvolvedores de aplicações precisam de se desenvolver. Estes desenvolvedores pedem-me para alterar o DebugView para que só instale o controlador se o utilizador tiver privilégios de administrador, e de outra forma apenas recolhe a saída de depurar Win32.
Estes pedidos dão-me sempre uma gargalhada, porque o que a gerência que faz o argumento do privilégio de Debug não percebe é que este privilégio abre a porta aos privilégios dos administradores locais. Utilizando o privilégio Debug, um desenvolvedor pode ter um depurador ligado ao processo da Autoridade de Segurança Local (LSASS) e manipulá-lo de modo a dar-lhes privilégios de administrador local no seu próximo login. Ou podem injetar código em qualquer processo em execução na conta do Sistema que adicionaria a sua conta ao grupo de administradores locais. Quando explico isto aos desenvolvedores que se queixam, às vezes respondem que a sua gestão não acredita no argumento. Até agora, não tinha nada para eles levarem de volta à sua gerência para apresentar o seu caso, mas uma recente erupção de tais e-mails levou-me a tomar medidas.
A LogonEx, um utilitário que pode descarregar em www.sysinternals.com/logonex.zip, exibe graficamente a influência do privilégio Debug. A LogonEx trabalha na Windows NT e Windows 2000. Para melhor mostrá-lo, crie uma conta que seja uma conta de utilizador normal, exceto com a adição do privilégio "Debug Programs". Faça login e faça login nessa conta e execute o LogonEx. Necessitará do(s) de símbolos para msv1_0.dll para a sua instalação particular (os desenvolvedores normalmente têm símbolos de sistema instalados), que o LogonEx utiliza para localizar o ponto de entrada da MsvpPasswordValidate função e remendá-lo. Depois de o LogonEx fazer o seu patch, poderá iniciar sessão no sistema utilizando qualquer conta sem especificar uma palavra-passe. Complete a demonstração iniciando sessão como administrador e adicionando a conta que criou ao grupo de administradores locais.
O LogonEx é apenas um exemplo de como o privilégio Debug permite que um desenvolvedor assuma o controlo de um sistema, mas há muitos outros. Espero que o LogonEx convença a administração de que não faz sentido não dar privilégios aos administradores locais dos desenvolvedores (nota, no entanto, que não estou a falar de privilégios de administrador de domínio, que é outra história que um administrador local reina supremo apenas sobre o seu próprio computador, e não qualquer outro, enquanto um administrador de domínio governa uma rede).
NOVOS APIS NO WIN2K SP1?
Depois de muitos utilizadores terem encontrado problemas com os pacotes de serviços NT 4 (SP) que causaram novos bugs, a Microsoft adotou uma política de não incluir nenhuma nova funcionalidade num SP, de forma a minimizar a possibilidade de introduzir novos problemas enquanto corrigia os antigos. Ou assim pensávamos. Windows 2000 SP 1 foi recentemente lançado e parecia não ter nenhuma nova funcionalidade. No entanto, uma inspeção detalhada da Ntoskrnl.exe, o ficheiro que contém os componentes executivos e de kernel de 2000 Windows, e Ntdll.dll, a biblioteca que contém a API nativa e o carregador, revela que uma nova API estreou-se 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, por isso esta é claramente uma API para eventos de registo. Um aspeto interessante da API é que a sua implementação é duplicada em Ntdll e Ntoskrnl, o que é diferente de outras APIs Ntdll que requerem os serviços de uma implementação em Ntoskrnl.
O exame da implementação da API mostra que é usado assim: uma aplicação cria uma base de dados de rastreios, que é armazenada na memória virtual da aplicação, e adiciona entradas à base de dados. Em algum momento a aplicação pode enumerar o conteúdo da base de dados, e quando é feito com a base de dados, elimina-o. Estranhamente, não parece haver uma forma de apagar as entradas na base de dados.
O que faz uso desta nova API? Nada que esteja instalado na minha Windows instalação do Advanced Server de 2000, por isso não é claro que alguma coisa o faça. Talvez esta tenha sido uma API depuração que foi acidentalmente incluída no código de libertação SP 1.
Publicado quarta-feira, 30 de agosto de 2000 19:07 por ottoh
[Newsletters Archive ^][ Volume 2, Número 3][Volume 2, Número 5 ]
[Newsletters Archive ^][ Volume 2, Número 3][Volume 2, Número 5 ]
A Newsletter Sistemas Internas Volume 2, Número 4
www.sysinternals.com
Copyright © 2000 Mark Russinovich