Compatibilidade de aplicativo

Dentro o Application Compatibility Toolkit 5.5

Chris Corio and Chris Jackson

 

Visão geral:

  • Gerenciador de compatibilidade de aplicativo e do Framework de agente
  • Avaliadores de compatibilidade
  • Armazenar e analisar os dados
  • O Standard User Analyzer
  • Ferramenta de teste de compatibilidade do Internet Explorer

Conteúdo

Gerenciador de compatibilidade de aplicativo
Avaliadores de compatibilidade
Banco de dados do ACT
Análise
Sincronização online
Padrão User Analyzer
Ferramenta de teste de compatibilidade do Internet Explorer
Conclusão

O Application Compatibility Toolkit (ACT) ajuda a gerenciar o processo para determinar se os aplicativos são compatíveis com uma nova versão do Windows antes de implantá-los. Ele também pode ajudar você a determinar como uma atualização do sistema operacional afetarão esses aplicativos. Houve uma série de artigos e white papers em como usar o 5.5 ACT. O deseja fazer neste artigo é ir nos bastidores e explorar como cada uma das ferramentas esse kit de ferramentas funciona. Vamos começar com a ferramenta a maioria das pessoas associar o Kit de ferramentas: o Gerenciador de compatibilidade de aplicativos.

Gerenciador de compatibilidade de aplicativo

O Gerenciador de compatibilidade de aplicativos fornece uma estrutura para descoberta de informações sobre seu ambiente de produção, organizar análise dos dados e ajudando a orientar o processo de teste. Vamos sobre essa ferramenta para entender como ele funciona.

pacotes de implantação avaliador (MSIs) Você implantar pacotes de coleta de dados ACT 5.5 como MSIs, mas se você vejamos o MSI, você irá encontrar que ele realmente não faz muito trabalho. Em vez disso, ele extrai um arquivo executável que executa a instalação. a Figura 1 mostra a árvore de processo para uma execução típica do processo de instalação.

fig01.gif

Figura 1 árvore de processos instalação agente Framework

A terceira instância de msiexec.exe, mostrado em vermelho, é interessante: é uma chamada para desinstalar o MSI original. Basicamente, o MSI extrai um .exe (mostrado como um arquivo .tmp) e, em seguida, desinstala o MSI externo. Posteriormente, um segundo MSI (chamado de msiexec) está instalado. Em um teste, a implantação MSI concluída a instalação em 1:19:46 e ele terminou a desinstalação no 1:19:50. O MSI aparece instalado para apenas 4 segundos! Conseqüentemente, ao implantar um pacote de coleta de dados, não procure a instalação do MSI para determinar se você deverá instalá-lo em um computador de destino, por não provavelmente localizá-lo. Você precisará procurar outras evidências que tenha instalado agentes em cada estação de trabalho.

Por exemplo, enquanto o MSI você implantar terão um novo código de produto gerado cada vez, o MSI interno sempre terá o mesmo código de produto (DC93B45B-D4F5-4FFE-9B47-042BD6FA8CC5) e isso pode ser usado como evidence que um pacote de coleta de dados do ACT está instalado (embora você não é determinados qual deles, que todos os pacote de coleção de dados do ACT tenha esse espaço). Observe que não é recomendável desinstalar um pacote de coleta de dados usando essa entrada MSI; discutiremos a maneira recomendada para desinstalar um pacote de coleta de dados do ACT em seguida.

Afsetup.exe executa a maior parte do trabalho e você precisará estar atento a essa binário no caso de você ter problemas com a implantação do agente. Você pode desinstalar a estrutura de agente usando o seguinte comando:

%program files%\Microsoft Agent Framework\Agent Framework\afsetup.exe /uninstall

Framework de agente O Framework de agente de 5.5 ACT fornece uma estrutura para reunir dados de uma grande coleção de computadores em uma empresa. Uma meta de design de agentes é ser desapercebidos e adequada para a implantação em um ambiente de produção. Conseqüentemente, o trabalho dos agentes individuais é otimizado de desempenho muito (que você observará em algumas das decisões de design feitas nos agentes de).

A própria estrutura é simples. Quando o Framework de agente é instalado, você encontrará seus arquivos em % programa files%\Microsoft Framework de agente. Ele é executado como um serviço (actdcsvc.exe) que permite o planejamento e inicialização dos agentes. O XML encontrado no subdiretório do agente Framework\Data configura os agentes para iniciar o acordo com a uma agenda especificada. Você pode encontrar o agente de arquivos executáveis em Framework\Agents do agente.

Agentes são nada mais do que arquivos executáveis — o serviço de agente Framework simplesmente gerencia o agendamento e inicia os arquivos executáveis apropriados conforme especificado na instalação e configuração XML. a Figura 2 mostra um exemplo da árvore de processos nos primeiros 5 minutos de uma instalação típica do Framework de agente.

fig02.gif

A Figura 2 árvore de processos Framework agente

O que temos aqui é um serviço simples que simplesmente agenda e executa agentes. Os agentes realizam o trabalho, portanto, vamos explorá-los.

O agente de inventário do ACT 5.5, collect.exe, é uma das mais significativas. Essencialmente, este agente procura sistemas clientes e compila um inventário dos aplicativos. Em termos dos dados necessários para planejar um projeto de compatibilidade de aplicativo (um nome de aplicativo alinhando um vender, versão e, eventualmente, uma instrução de suporte), agente de inventário consistentemente executa em comparação muito bem com outras ferramentas de inventário de software.

O que é particularmente útil não apenas o agente como bem scours o sistema procurando provas (detalhada abaixo), mas como bem- e limpa os dados antes de enviá-lo junto. A ferramenta cria uma série de "classificações" e, em seguida, consolida todas as evidências encontrada nas pesquisas detalhadas a seguir, não estruturados, remover duplicatas e categorizar a ele. O agente de procura por evidências em um número de locais para localizar aplicativos.

A pesquisa de banco de dados MSI usa a API MsiEnumComponents para enumerar todos os aplicativos instalados usando o Windows Installer.

A pesquisa de programas de adicionar/remover abre HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Uninstall e HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Uninstall e coleta dados de cada subchave encontrada aqui.

A pesquisa de shell do Windows funciona por enumerar o conteúdo de pastas HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell, bem como HKEY_USERS\ <... > \Software\Microsoft\Windows\CurrentVersion\Explorer\Shell pastas para cada usuário com um perfil no computador. O agente, em seguida, procura por todos os arquivos e links nesses diretórios e seus subdiretórios (especificamente excluindo áreas de trabalho, que tendem a ser "estacionamentos" para executáveis baixados da Web, para reduzir o ruído). Essa pesquisa captura software que, por exemplo, não se registra em Add/Remove Programs mas adiciona um atalho do menu Iniciar.

A pesquisa de caminhos do aplicativo enumera todas as subchaves na chave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App caminhos do registro, os aplicativos que foram registrados para receber um caminho de aplicativo específicas do programa de separação.

A pesquisa de variáveis de ambiente do caminho procura por arquivos executáveis em cada diretório (mas não subdiretórios) apontado na variável de ambiente do caminho de qualquer usuário. Ele primeiro procura por arquivos executáveis em caminhos retornados de uma chamada para ExpandEnvironmentStrings (que retorna as variáveis de ambiente do sistema e variáveis de ambiente do usuário atual) mais o conteúdo de \Environment HKEY_USERS\ <... > para todos os outros usuários. Isso permite que o coletor de estoque localizar aplicativos (aplicativos normalmente linha de comando) instalados, simplesmente colocando o arquivo no sistema de arquivos e, em seguida, acrescentando a variável de ambiente path.

A pesquisa de manipuladores de extensão de arquivo examina cada extensão de arquivo registrados e programas registrados para lidar com essas extensões de arquivo de captura. Ele primeiro abre HKEY_LOCAL_MACHINE\SOFTWARE\Classes e enumera cada entrada que começa com um ponto (.) como essas são as extensões de arquivo. Para cada entrada que é localizados, o agente enumera o programa identificações e localiza as subchaves shell\open\command da cada identificação de programa para localizar arquivos executáveis. Ele, em seguida, faz o mesmo para cada usuário, enumerar o conteúdo de \Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts HKEY_USERS\ <... >. Isso permite que o agente para localizar o software em que a instalação simplesmente ignorados binários e, em seguida, se auto-registrado como um manipulador para uma extensão de arquivo.

A pesquisa de executar/RunOnce de registro analisa as chaves de Registro a seguir para localizar arquivos executáveis que podem representar aplicativos:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVerison\RunOnceEx

Examinar essas chaves do Registro permite que o agente para localizar o software que executa com a cada inicialização, mas que não pode deixar outras evidências para o coletor localizar.

A pesquisa do Gerenciador de controle de serviço consulta o Gerenciador de controle de serviços (usando a API EnumServiceStatus) e, em seguida, consulta cada serviço para obter detalhes (usando a API QueryServiceConfig). Isso permite que o agente para localizar o software cuja instalação manualmente coloca arquivos executáveis no sistema de arquivos e define as chaves do Registro para registrar o serviço.

Os componentes do Windows pesquisar consultas os componentes opcionais instalados para o Windows, para capturar esses aplicativos bem. Ele faz isso consultando sysocmgr.inf (em % windir%\inf) e enumerar os componentes opcionais selecionados. Isso permite que o agente para localizar o software que provavelmente não a existir em uma instalação padrão do Windows.

Avaliadores de compatibilidade

Embora saber qual software você instalou em computadores em toda a empresa é, normalmente, os dados mais importantes para executar um projeto de compatibilidade de aplicativo, o Framework de agente também permite coletar dados adicionais dos computadores com agentes instalados. Os agentes de avaliador de compatibilidade fornecidos com o ACT são desempenho otimizado para uso em produção e, conseqüentemente, coletar uma quantidade limitada de dados. Revisar os dados coletados e execute uma verificação de conceito para medir o valor dos dados antes de investir muito em uma implantação do avaliador de compatibilidade grande.

avaliador de compatibilidade do UAC O avaliador de compatibilidade do UAC (uacce.exe) instala um banco de dados correção personalizado (uacce.sdb) e correções personalizadas (uacdetct.dll) para determinar se um aplicativo pode ser executado como um usuário padrão (ou como um administrador protegida) no Windows Vista ou Windows 7. (Correções são pequenas partes do código do aplicativo que são inseridos entre o aplicativo e o Windows, que são normalmente usados no Windows para resolver problemas de compatibilidade de aplicativos, mas aqui são usadas para detectá-las.) Ele se aplica essas correções para os processos em execução no sistema, definindo uma camada de compatibilidade para explorer.exe; ele define a variável de ambiente __COMPAT_LAYER para incluir UACCEDetection, uma camada definida o SDB personalizado. Porque processos filho herdam camadas, qualquer processo criado usando o Explorer terá essas correções aplicadas.

O que as correções fazer? A correção FileOperations intercepta chamadas para o _lcreat, CopyFile CopyFileEx, CreateFile, DeleteFile, MoveFile, MoveFileEx, MoveFileWithProgress, ReplaceFile, LZOpenFile, EncryptFile, DecryptFile e APIs de DuplicateEncryptionInfoFile. Para cada chamada, ele verifica se a ACL restringe o acesso ou se o arquivo reside em um caminho especial (no caso de você ter negligenciado as ACLs).

A verificação ACL é determinada pelo levando a ACL existente, removendo ACEs "administrador" e os privilégios e depois chamar AccessCheck no recurso para determinar se tiver êxito para um usuário não-administrador. A verificação de caminho especial verifica se o caminho está no diretório raiz, diretório de % de arquivos de programa %, diretório de % de sistema % ou diretório % windows %. Quaisquer falhas são registradas.

A correção RegistryOperations intercepta chamadas para o RegCreateKey, RegCreateKeyEx RegDeleteKey, RegDeleteKeyEx, RegDeleteValue, RegOpenCurrentUser, RegOpenKey, RegOpenKeyEx, RegCloseKey, RegOpenUserClassesRoot, RegReplaceKey, RegRestoreKey, RegSetValue, RegSetValueEx e APIs de RegUnloadKey. Para cada chamada para uma API interceptada, a correção verifica se a ACL pode negar o acesso a um usuário padrão. Esta verificação de ACL é o mesmo usado para operações de arquivo — remoção para baixo o token e chamada AccessCheck. As falhas são registradas.

A correção ProfileOperations intercepta chamadas para o WritePrivateProfileSection, WritePrivateProfileString, WritePrivateProfileStruct, WriteProfileSection e APIs de WriteProfileString. Cada chamada para essas APIs, a correção verifica se o arquivo ini é mapeado usando um mapeamento de arquivo ini. Se não, a correção verifica as permissões no arquivo, conforme indicado no FileOperations corrigir (como, se não mapeada, um arquivo ini é apenas outro arquivo) e as falhas são registradas.

A correção RestrictedNamespace intercepta chamadas para a API CreateFileMapping. Se o nome do objeto incluir o Global\ ou Session\ espaço para nome, em seguida, uma falha será registrada.

A correção ElevatedRunLevel intercepta chamadas para o CreateProcess, CreateProcessAsUser CreateProcessWithLogon e APIs de CreateProcessWithToken. Todas as APIs interceptadas Verifique o executável para determinar se o recurso de detecção do instalador do Windows irá disparar um evento de elevação (que retorna ERROR_ELEVATION_REQUIRED ao usar as APIs CreateProcess) de destino. Além disso, a correção verifica a identidade de destino de APIs que altera as credenciais de usuário para determinar se eles são contas de administrador.

Se você olhar estritamente como funciona a detecção, você verá que presume que você está executando elevados enquanto os agentes estão trabalhando. Como os agentes foram desenvolvidos para uso em sistemas de produção, a suposição é que o aplicativo já está funcionando. E se ele está funcionando e poderia ter um problema com UAC, em seguida, você está provavelmente executando como um administrador!

Avaliador de compatibilidade do Windows Vista/Windows 7 O avaliador de compatibilidade do Windows Vista/Windows 7, na verdade, é dividido em dois executáveis de agente separado, como uma unidade de trabalho pode ser detectada estaticamente, enquanto o outro é monitorado e analisado em tempo de execução.

O agente de GINA sessão 0 (ginasession0.exe) executa uma verificação do Registro simples. Ele examina NT\CurrentVersion\Winlogon\GinaDLL HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows para determinar se você tiver instalado um personalizado GINA. Ele também enumerará serviços, observando o valor de tipo no Registro para ver se o 0 x 100 bit for definido o sinalizador SERVICE_INTERACTIVE_PROCESS. Quaisquer falhas são registradas.

Bem como o avaliador de compatibilidade do UAC, o agente de exclusão (dep.exe) instala um banco de dados personalizado correção (dep.sdb, ou win2kagents.sdb no Windows 2000) e correções personalizadas (depdetct.dll), o definindo a variável de ambiente __COMPAT_LAYER de Explorer.exe incluir DeprecationAgentLayer, que garante que os processos iniciados pelo Explorer são corrigidos. (Observe que o banco de dados de correção também exclui binários específicos da correção que são conhecidos por falhar se eles detectarem que eles foram corrigidos.)

O que estão a procurando dos agentes de remoção? Vamos examinar as correções que ele usa.

A correção DllLoadOperations intercepta LoadLibrary e LoadLibraryEx e compara o nome de biblioteca passado para a lista de DLLs foi substituídos. Essa lista é armazenada no DepManifest.csv, que você pode localizar em % programa files%\Microsoft agente Framework\Agent Framework\Agents\DEP. As entradas em que a primeira coluna é DllType são usadas.

A correção ExeLoadOperations intercepta o CreateProcess, CreateProcessAsUser CreateProcessWithLogon, CreateProcessWithToken, ShellExecute, ShellExecuteEx e APIs de WinExec, comparando o nome do executável passado para a lista de EXEs preteridos, também armazenados em DepManifest.csv em que a primeira coluna é ExeType.

A correção RegistryLoadOperations intercepta o RegCreateKey, RegCreateKeyEx RegCloseKey, RegDeleteKey, RegDeleteKeyEx, RegDeleteValue, RegOpenCurrentUser, RegOpenKey, RegOpenKeyEx, RegOpenUserClassesRoot, RegReplaceKey, RegRestoreKey, RegSetValue, RegSetValueEx e APIs de RegUnloadKey, comparando a chave do Registro passada para a lista armazenada (novamente) em tempo de DepManifest.csv—this com uma primeira coluna da RegType.

A correção ApiLoadOperations diretamente shims APIs específico que tenha sido substituído, indicando que um aplicativo chamado. Para Windows Vista, há somente um: StiCreateInstanceA em sti.dll. (E há até mesmo uma história por trás isso; consulte https://blogs.msdn.com/tomarcher/archive/2006/03/22/windows-vista-sti-and-a-story-about-customer-service.aspx.)

Uma coisa que você notará sobre esse agente é que ele depende executando nível abaixo: o fato de que você chamou algo é registrado apenas se você tiver êxito em chamá-lo.

Atualizar o avaliador de compatibilidade O avaliador de compatibilidade de atualização é útil para determinar os binários do Windows estiver usando um aplicativo específico, que permite direcionar o teste mais precisamente quando atualizações do Windows são lançadas. O avaliador de compatibilidade de atualização funciona, instalar um driver modo kernel (fdrtrace.sys) que implementa um driver do filtro de sistema do arquivo e registro ganchos para registrar a atividade de arquivo do Registro e do sistema gerada pelos aplicativos. Ele utiliza um serviço (uiaservice.exe) e um arquivo executável (uiaconvert.exe) para interpretar os dados e alinhá-lo a aplicativos e o acesso aos binários do Windows.

Agente de bucketizer O agente Bucketizer mapeia os dados coletados de agentes de avaliador de compatibilidade no inventário do computador para categorizar os problemas detectados em classificações para cada aplicativo.

Agente de compactador Assim como os sons de nome, a finalidade do agente de compactador (compressor.exe) é compactar os arquivos a serem carregados o compartilhamento de arquivo especificado em um arquivo CAB para salvar largura de banda da rede.

agente de uploader O agente Uploader é responsável por carregar os dados coletados de outros agentes para o compartilhamento de arquivo especificado. O trabalho desse agente é relativamente simples, copiando dados coletados localmente para o local indicado. Se o local é acessado, o agente aguardará cinco segundos antes de tentar novamente. O agente tentará três vezes antes de desistir.

Um recurso de novo importante no ACT 5.5 é que pacotes de conjunto de dados pode ser "marcados", configurado para que todos os logs carregados por um pacote de coleção de dados específicos terá uma marca específica aplicada a eles. Isso permite endereços com mais eficiência alguns cenários, tais como completamente Noções básicas sobre qual software está sendo usado para cada grupo inventariado (anteriormente isso era difícil de medir de sobreposição de aplicativos) ou para consolidação de dados de vários grupos ou organizações.

serviço de processamento de log O serviço de processamento de log é executado actdcsvc.exe como serviço. Se você achar que parece familiar, você está certo exatamente — esse é o mesmo serviço de estrutura de agente discutido anteriormente! Nesse caso, ele executa os agentes de três seguintes:

  • O agente do descompactador (decompressor.exe) é o Assistente para o agente compactador usado em estações de trabalho que você coletar de; ele extrai os arquivos XML gerados no cliente dos arquivos CAB usado para carregá-los. Quando extraídos, o agente de escuta detecta a alteração e possa continuar.
  • O agente de escuta (listener.exe) monitora o diretório especificado para que as alterações. Ela aguarda alterações façam efeito no diretório monitorado, processa, enviando uma chamada RPC para o agente de serviço de enfileiramento de mensagens.
  • O agente de Queuer (queuer.exe) configura as portas para escutar chamadas RPC do agente de escuta. Quando ele recebe essas chamadas, ele processa o arquivo e carrega-los para o banco de dados. O agente Queuer move arquivos XML concluídos da raiz ou pasta não compactada para a pasta processamento quando ele é bem sucedido. Se ele falhar, ele move os arquivos para a pasta falha. Com muita freqüência, se um log falhar processar, você pode simplesmente movê-lo novamente para a pasta raiz do compartilhamento monitorado para tentar novamente, e muitas vezes isso terá êxito.

Uma pergunta que vem up muito freqüentemente é se você precisa salvar esses arquivos processados. Como os dados já é no banco de dados, você tecnicamente não precisa salvá-las e a maioria das pessoas pode excluir com segurança-los. No entanto, esses arquivos podem ser útil para reconstruir o banco de dados ou para consolidar dois bancos de dados, portanto, é vale a pena considerar sua necessidade futura para regenerar o banco de dados antes de excluir esses dados.

Banco de dados do ACT

O Gerenciador de compatibilidade de aplicativos pode ser onde a maioria da mágica acontece, mas o banco de dados do ACT é onde todos os dados reside. Há uma série de tabelas no banco de dados do ACT. Embora o esquema é não documentado, é muito simples (mas, infelizmente, sujeito a alterações com quase cada nova versão do ACT). Tabelas importantes incluem aplicativos, computadores, dispositivos e problemas, e eles são usados para organizar todas as informações retornados por vários agentes e processadas pelo serviço de processamento de log.

Aplicativos estão vinculados aos dados com uma identificação exclusiva do aplicativo, gerado usando o nome, versão, fornecedor e idioma (NVVL) do aplicativo.

Você pode hospedar o banco de ACT dados no Microsoft SQL Server 2005 ou posterior, incluindo as versões Express. (SQL Server 2000 não é suportado.) O Gerenciador de compatibilidade de aplicativos cria o banco de dados durante a fase de configuração inicial de configuração do Enterprise do ACT. O script usado para criar o banco de dados reside no %allusersprofile%\Microsoft\Application Kit de ferramentas de compatibilidade 5\CreateDB.sql.

Um aspecto fundamental da ACM é a capacidade de criar relatórios. Para criar relatórios, filtragem de banco de dados ACT usando um controle de construtor de consulta em ACM, que é mostrado quando você clicar em Alternar filtro. Você pode filtrar com base em critérios relacionados a entidades no banco de dados do ACT e vincular essas cláusulas para criar E e ou relações. Você pode salvar seu relatório como um arquivo .adq — um arquivo .XML que define os filtros usados. O arquivo .adq é um formato portátil que contém dados nem depende de um conjunto específico de dados.

Sincronização online

Quando executar uma sincronização online, o ACT usa um serviço da Web público. Nas versões anteriores do ACT, identificações exclusivas do aplicativo para todos os software foi enviada, mas você pode ocultar a avaliação de compatibilidade da comunidade se desejar. Com o 5.5 ACT, quando você optar por não compartilhar informações sobre um aplicativo, ACT nunca envia a identificação de aplicativo (que também significa que você não recebe dados de retorno).

Os dados da comunidade vem de banco de dados do Microsoft Compatibility Exchange e incluem dados de certificação de logotipo e dados de comunidade (votos de outros usuários). Um sistema separado atualmente ativa windows.com/compatibility e esses dados adiciona o resultado da pesquisa manual para o estado de compatibilidade de software disponível comercialmente; ACT 5.5 será a primeira versão do ACT para incorporar esses dados, que fornece muito mais informações sobre o estado conhecido de compatibilidade que estava disponível anteriormente.

Padrão User Analyzer

O Standard User Analyzer (SUA) consiste em vários binários para monitorar e analisar a execução do aplicativo e se comunicarem questões que possam surgir durante o teste de aplicativos. A INTERFACE de SUA principal permite direcionar um aplicativo para analisar e selecione as condições de inicialização para este aplicativo. SUA, em seguida, irá utilizar Application Verifier como sua plataforma subjacente para monitorar aplicativos. Depois de monitorar a execução do aplicativo, SUA apresenta os dados adquiridos na SUA interface do usuário onde o usuário pode trabalhar para compreender os dados e até mesmo criar pacotes de mitigação que conecte a infra-estrutura de compatibilidade de aplicativo do Windows.

verificador de aplicativo Verificador de aplicativo é uma ferramenta que oferece aos desenvolvedores uma maneira de monitorar a execução do aplicativo. SUA usa o Application Verifier para controlar o comportamento do aplicativo que exigiria privilégios de administrador, conectando APIs específicos e observando seu uso.

Verificador de aplicativo implementa um modelo de plug-in (que, como da elaboração deste documento, não está ainda documentado para uso público) onde dlls específico pode ser registrado e utilizada para monitorar aplicativos de destino. (Plug-ins é configurados usando a chave do Registro HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution segurança\ {ApplicationVerifierGlobalSettings}.) A dll que SUA usa para monitorar aplicativos é vfLuaPriv2.dll, que é instalado no diretório % windir%\System32 durante a instalação. O vfLuaPriv2.dll binário substitui vfLuaPriv.dll instalado pelo Application Verifier.

Quando SUA inicia um aplicativo para teste, ele inicialmente verifica Application Verifier está instalado no sistema e solicita ao usuário para instalá-lo se necessário. Em seguida, SUA usa a interface de linha de comando do Application Verifier para registrar um aplicativo; por exemplo, se o notepad.exe destina-se para o monitoramento, as chamadas SUA linha de comando seria o seguinte:

appverif.exe -enable luapriv -for "notepad.exe"

Verificador de aplicativo corresponde a seqüência de caracteres luapriv com o nome especificado no vfLuaPriv2.dll.

Quando SUA configura um aplicativo, ela também indicará Application Verifier para monitorar os processos filho criados por esse aplicativo. Verificador de aplicativo cria um arquivo de log separado para cada processo, mas SUA combina esses arquivos de log para criar um relatório único e consolidado. SUA também pode salvar o conjunto de logs em um arquivo .cab para exibição em outro computador.

Analisador de usuário padrão da interface do usuário SUA pode testar um aplicativo em um dos três contextos diferentes: iniciar o aplicativo com o usuário atual do token, com token desabilitar arquivos e registro virtualização do usuário atual, ou com permissões elevadas. Em cada caso, SUA iniciará um processo elevado, SUAnalyzerSrv.exe, como Application Verifier exige permissões elevadas para configurar. Figura 3 mostra uma árvore de processo típico ao testar o notepad.exe.

fig03.gif

A Figura 3 teste Notepad.exe

SUAnalyzerSrv.exe e AppVerif.exe sempre serão executado com privilégios de administrador para preparar o ambiente para o aplicativo de destino a serem testadas. SUA irá iniciar notepad.exe no contexto de segurança especificado e espere que o aplicativo e todos os processos filho concluir a execução. SUA e agrega e processa os logs do Application Verifier e exibe os resultados na interface do usuário.

Os resultados SUA são divididos em categorias de problemas, incluindo arquivos, registro, INI, token, privilégios, o espaço de nome, outros objetos e processo. Essas categorias correspondem a uma guia na parte superior da SUA interface do usuário e permitem que você se concentrar na problemas diferentes, como você testar o aplicativo.

Arquivos e registro guias slides você arquiva operações de sistema ou do Registro que requerem privilégios de administrador. O plug-in do Application Verifier luapriv monitora o comportamento de APIs relevantes, como CreateFile ou CreateRegistryKey para casos em que seu uso requer privilégios de administrador. Em alguns casos, o recurso de arquivos do UAC e redirecionamento do registro permitiria que essas operações ser bem-sucedida no Windows Vista.

Cada guia mostrado na interface do usuário geralmente resulta de luapriv monitorar o comportamento de um conjunto de APIs. Por exemplo, na guia INI se concentra na detecção de problemas relacionados ao uso das APIs WriteProfile, originalmente usados em aplicativos de 16 bits. Uma discussão do cada guia está disponível na documentação do SUAnalyzer.rtf incluída como parte da SUA instalação. Você pode expandir os eventos de cada guia para exibir informações detalhadas sobre o evento, incluindo um rastreamento de pilha para onde no aplicativo o evento ocorreu.

Após examinar os resultados do teste do aplicativo, SUA permite que você teste e criar pacotes de mitigação de um aplicativo. Um pacote de atenuação é um MSI que registra um banco de dados de compatibilidade de aplicativo em um sistema e pode usar loosen.exe, um utilitário fornecido com SUA, para ajustar o arquivo ou as ACLs de registro. Os pacotes de atenuação podem ser implantados em todo o ambiente.

Ferramenta de teste de compatibilidade do Internet Explorer

A ferramenta de teste de compatibilidade do Internet Explorer funciona ativando o Internet Explorer compatibilidade avaliador (iece.exe). No ACT 5.0, você pode implantar o avaliador da como parte de um pacote de coleta de dados, mas como a coleção necessária se você tiver instalado o navegador de destino, isso foi removido para 5.5 ACT. (Afinal, descobrir que algo não funciona depois de instalado é inferior; a maioria das pessoas preferem descobrir quaisquer problemas antes de implantar o novo navegador!)

O avaliador de compatibilidade do Internet Explorer é bem simples — o trabalho apenas a fazer é modificar o Registro para que o Internet Explorer permite o log. Como o navegador oferece a detecção, a fidelidade dos dados é extremamente alta. Para obter detalhes sobre todos os eventos que Internet Explorer pode detectar (junto com recomendações de correção para cada), consulte Compatibilidade de aplicativos do Internet Explorer.

Internet Explorer registra informações no log de eventos e a ferramenta de teste coleta informações do registro e consolida-lo. Você pode analisar as informações diretamente na ferramenta, ou você pode carregar eventos de um banco de dados consolidado ACT. Se você optar por carregá-los a um banco de dados do ACT, o avaliador de compatibilidade do Internet Explorer executará agentes assim como os agentes executados em um pacote de coleta de dados, primeiro collect.exe em execução, em seguida, bucketizer.exe e finalmente compressor.exe, após o qual ele solicita um local para salvar o arquivo CAB.

Conclusão

Bem, que termina nosso tour em capas do 5.5 de Kit de ferramentas de compatibilidade aplicativo. O produto oferece uma série de ferramentas úteis para oferecer suporte a migração para o Windows Vista ou Windows 7 e pela compreensão mais informações sobre o que cada um tiver, você vai poderá melhor avaliar o potencial de cada ferramenta e investir em-los adequadamente.

Chris Jackson é o líder técnico da equipe Windows Application Experience SWAT na Microsoft. Ele trabalhou com clientes corporativos em todo o mundo para ajudá-los a investigar e minimizar problemas de compatibilidade de aplicativos, bem como fornecendo treinamento instruções sobre a compatibilidade de aplicativo do Windows para vários eventos do setor. Chris pode ser contatada pelo https://blogs.msdn.com/cjacks.

Chris Corio era membro da equipe de segurança do Windows na Microsoft há mais de cinco anos. Seu foco principal na Microsoft foi tecnologias de segurança de aplicativos e tecnologias de gerenciamento para proteger o Windows. Você pode acessar Chris em winsecurity@chriscorio.com.