Determinadas construções IDL são empacotadas e desempacotadas incorretamente pela RPC

Traduções deste artigo Traduções deste artigo
ID do artigo: 824835 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
importante Este artigo contém informações sobre como modificar o registro. Certifique-se de fazer backup do registro antes de modificá-lo. Certifique-se que você sabe como restaurar o registro se ocorrer um problema. Para obter mais informações sobre como fazer backup, restaurar e modificar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
256986Descrição do registro do Microsoft Windows
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Programas que usam chamadas de procedimento remoto (RPC) para se comunicar com outros computadores baseados em Windows no Microsoft através de uma rede podem falhar. Por exemplo, quando você usa um programa do Microsoft Visual Basic personalizado entre dois computadores remotos e o Visual Basic programa usa usuário tipo definido pelo empacotamento, você poderá localizar determinadas Interface Definition Language (IDL) constrói são incorretamente empacotados e desempacotada. Por exemplo, você pode perceber um dos seguintes sintomas:
  • Falha de chamada remota e um código de erro RPC_X_BAD_STUB_DATA é retornado pelo programa do Visual Basic.
  • Dados incorretos são desempacotados.

Causa

Esse problema pode ocorrer se o componente RPC incorretamente empacota ou unmarshals determinadas construções IDL. Versões do Windows que podem empacotar e desempacotar construções IDL incorretamente incluem o seguinte:
  • Microsoft Windows XP (versão original) e Windows XP atualizar instalações de Service Pack 1 (SP1) que incluem a segurança do MS03-039. Esta atualização está documentada no seguinte artigo Base de dados de Conhecimento Microsoft:
    824146MS03-039: Um saturação do buffer no RPCSS pode permitir que um invasor executar programas mal-intencionados
  • Microsoft Windows 2000
  • Microsoft Windows NT 4.0
  • Microsoft Windows 98
Esse problema pode ocorrer em um programa do Visual Basic se as duas condições a seguir forem verdadeiras:
  • O arquivo IDL usa uma estrutura que contém um campo de 8 bytes que usa qualquer um dos seguintes tipos:
    DATA
    Duplo
    CY
    VARIANTE
    DECIMAL
    INT64/UINT64
  • O campo de 8 bytes é um campo de não-primeiro, e há um campo é de 4 bytes ou menos antes do campo de 8 bytes que está contido na mesma estrutura.
Por exemplo, esse problema pode ocorrer se o arquivo IDL usa uma estrutura que é semelhante à seguinte:
Public Type myType

member1 As Long

member2 As Double

End Type

Resolução

Informações sobre o hotfix para Windows Server 2003

Para se comunicar com as versões do Windows que empacotar e desempacotar construções IDL incorretamente, execute estas etapas:
  1. Siga um destes procedimentos:
    • Instalar o mais recente service pack para Windows Server 2003 . Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      889100Como obter o service pack mais recente para o Windows Server 2003
    • Eu nstalar a atualização de segurança descrita no boletim de segurança MS05-051 .Para obter mais informações sobre o boletim de segurança MS05-051, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      902400MS05-051: Vulnerabilidades no MS DTC e COM + podem permitir a execução remota de código
  2. Adicione a entrada de registro UDTAlignmentPolicy. Para fazer isso, execute as seguintes etapas:

    Aviso Podem ocorrer sérios problemas se você modificar o registro incorretamente usando o Editor do registro ou usando outro método. Esses problemas podem exigir que você reinstale seu sistema operacional. A Microsoft não garante que esses problemas possam ser solucionados. Modificar o registro por sua própria conta e risco.
    1. Clique em Iniciar , clique em Executar , na caixa Abrir , digite regedit e, em seguida, clique em OK .
    2. Localize a seguinte subchave do Registro:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
    3. No menu Editar , aponte para novo e, em seguida, clique em valor DWORD .
    4. Digite UDTAlignmentPolicy e, em seguida, pressione ENTER.
    5. Clique duas vezes em UDTAlignmentPolicy e, em seguida, digite um valor para determinar o formato de dados que usará RPC de acordo com as seguintes informações:

      Se o valor UDTAlignmentPolicy é definido como 0, RPC será empacotar usando o formato de dados incorretos "old". RPC se comunicará com versões do Windows que empacotar e desempacotar construções IDL incorretamente. Por exemplo, RPC irá se comunicar com o Windows 2000 ou atualizar instalações do Windows XP SP1 que incluem o MS03-039.

      Se o valor UDTAlignmentPolicy é definido como 0, RPC pode se comunicar com computadores baseados no Windows 2000.

      Se o valor UDTAlignmentPolicy é definido como 1, RPC será empacotar usando o formato correto de conexão "novo". RPC se comunicará com versões do Windows que realizar marshaling corretamente e desempacotar construções IDL. Por exemplo, RPC irá se comunicar com o Windows Server 2003 ou atualizar instalações do Windows XP que incluem o MS03-026.

      Se a entrada UDTAlignmentPolicy não existe, a chamada remota falhará e RPC retornará um código de erro RPC_X_BAD_STUB_DATA quando RPC tenta empacotar ou desempacotar afetados tipos.

      importante Quando o valor UDTAlignmentPolicy é definido como 0, o seu computador baseado no Windows Server 2003 pode trocar dados para a construção IDL com versões do Windows que empacotar e desempacotar construções IDL incorretamente. No entanto, a construção IDL é desempacotada para o formato incorreto. Usando incorreto código de empacotamento e unmarshaling pode impedir que a interoperabilidade dessa construção IDL mesma e outro IDL construções quando os programas se comunicar com computadores que executam versões do Windows que corretamente empacotar e desempacotar construções IDL.

Informações sobre o service pack para o Windows XP

Para resolver esse problema, obtenha o service pack mais recente para o Windows XP. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
322389Como obter o service pack mais recente do Windows XP
No Windows XP Service Pack 2, você pode modificar a entrada de registro UDTAlignmentPolicy para ajustar a maneira de que RPC se comunica com diferentes versões do Windows. Para fazer isso, execute a seção Etapa 3 de "informações de Hotfix para Windows Server 2003".

Informações sobre o hotfix para o Windows XP

Para se comunicar com as versões do Windows que empacotar e desempacotar construções IDL, incorretamente, como atualizar instalações do Windows 2000 ou Windows XP SP1 que incluem o MS03-039, instale a atualização MS03-039 em seus computadores com Windows XP SP1. Para obter mais informações sobre o MS03-039 atualizar, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824146MS03-039: Um saturação do buffer no RPCSS pode permitir que um invasor executar programas mal-intencionados
Um hotfix com suporte não está disponível para computadores baseados no Windows XP que se comunicam usando RPC com versões do Windows que realizar marshaling corretamente e desempacotar construções IDL no momento. Essas versões são Windows Server 2003 e atualizar instalações do Windows XP que incluem o MS03-026.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a". Esse problema foi corrigido primeiro no Microsoft Windows XP Service Pack 2.

Mais Informações

Versões do Windows que realizar marshaling corretamente e desempacotar a construção IDL mencionada na seção "Causa" incluem o seguinte:
  • Microsoft Windows Server 2003 e versões posteriores
  • Instalações do Microsoft Windows XP Service Pack 1 (SP1) que incluem o MS03-026 atualizar mas não incluem a atualização de segurança MS03-039. A atualização MS03-026 está documentada no seguinte artigo Base de dados de Conhecimento Microsoft:
    823980MS03-026: Buffer saturação na interface RPC pode permitir execução remota de código
  • Microsoft Windows XP Service Pack 2 (SP2)
Observação Um hotfix com suporte não está disponível para computadores baseados no Windows 2000 que se comunicam usando RPC com versões do Windows que realizar marshaling corretamente e desempacotar construções IDL no momento. Essas versões são Windows Server 2003 e atualizar instalações do Windows XP que incluem o MS03-026.

Propriedades

ID do artigo: 824835 - Última revisão: quinta-feira, 27 de fevereiro de 2014 - Revisão: 13.6
A informação contida neste artigo aplica-se a:
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium) 2003
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbtshoot kbwinxpsp2fix kbwinxppresp2fix kbfix kbbug KB824835 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 824835

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com