RPC calcula las referencias y elimina las referencias incorrectamente para ciertos constructores IDL

Seleccione idioma Seleccione idioma
Id. de artículo: 824835 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
importante Este artículo contiene información acerca de cómo modificar el registro. Compruebe que ha hecho una copia de seguridad del Registro antes de modificarlo. Compruebe que sabe restaurar el Registro en caso de que se produzca algún problema. Para obtener más información acerca de cómo realizar una copia de seguridad, restaurar y modificar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
256986Definición del Registro de Microsoft Windows
Expandir todo | Contraer todo

En esta página

Síntomas

Los programas que utilizan llamadas a procedimiento remoto (RPC) para comunicarse con otros equipos basados en Windows de Microsoft a través de una red pueden dar error. Por ejemplo, cuando se utiliza un programa de Microsoft Visual Basic personalizado entre dos equipos remotos y el tipo Visual Basic programa utiliza definido por el usuario cálculo de referencias, puede encontrar que construye determinados lenguaje de definición de interfaz (IDL) se calcula incorrectamente y deserializar. Por ejemplo, puede experimentar uno de los síntomas siguientes:
  • La llamada remota falla y un código de error RPC_X_BAD_STUB_DATA es devuelto por el programa de Visual Basic.
  • Datos incorrectos se resuelven referencias.

Causa

Este problema puede producirse si el componente RPC calcula las referencias incorrectamente o resuelve ciertas construcciones IDL. Versiones de Windows que pueden calcular referencias y deserializar IDL construcciones incorrectamente los siguientes:
  • Microsoft Windows XP (versión original) y Windows XP actualización instalaciones de Service Pack 1 (SP1) que incluyen la seguridad de MS03-039. Esta actualización está documentada en el siguiente artículo de Microsoft Knowledge Base:
    824146MS03-039: Un saturación de búfer en RPCSS un atacante podría ejecutar los programas malintencionados
  • Microsoft Windows 2000
  • Microsoft Windows NT 4.0
  • Microsoft Windows 98
Este problema puede producirse en un programa de Visual Basic, si se cumplen las condiciones siguientes:
  • El archivo IDL utiliza una estructura que contiene un campo de 8 bytes que utiliza cualquiera de los siguientes tipos:
    FECHA
    Doble
    CY
    VARIANTE
    DECIMAL
    INT64 O UINT64
  • El campo de 8 bytes es un campo no primero y hay un campo es de 4 bytes o menos antes del campo 8 bytes que está en la misma estructura.
Por ejemplo, este problema puede producirse si el archivo IDL utiliza una estructura que es similar al siguiente:
Public Type myType

member1 As Long

member2 As Double

End Type

Solución

Información de la revisión para Windows Server 2003

Para comunicarse con versiones de Windows que calcular incorrectamente y deserializar construcciones IDL, siga estos pasos:
  1. Siga uno de los siguientes:
    • Instalar el último service pack para Windows Server 2003 . Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
      889100Cómo obtener la versión más reciente del Service Pack para Windows Server 2003
    • Se nstalar la actualización de seguridad que se describe en el boletín de seguridad MS05-051 .Para obtener más información acerca del boletín de seguridad MS05-051, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
      902400MS05-051: Vulnerabilidades en MSDTC y COM + podrían permitir la ejecución remota de código
  2. Agregue la entrada de registro UDTAlignmentPolicy. Para ello, siga estos pasos:

    Advertencia Pueden producirse problemas graves si modifica incorrectamente el registro mediante el Editor del registro o utilizando otro método. Estos problemas pueden requerir que reinstale el sistema operativo. Microsoft no puede garantizar la solución de esos problemas. Modifique el Registro bajo su responsabilidad.
    1. Haga clic en Inicio , haga clic en Ejecutar , en el cuadro Abrir , escriba regedit y, a continuación, haga clic en Aceptar .
    2. Busque la siguiente subclave del Registro:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
    3. En el menú Edición , seleccione nuevo y, a continuación, haga clic en valor DWORD .
    4. Escriba UDTAlignmentPolicy y, a continuación, presione ENTRAR.
    5. Haga doble clic en UDTAlignmentPolicy y, a continuación, escriba un valor para determinar el formato de datos que utilizará RPC basado en la siguiente información:

      Si el valor de UDTAlignmentPolicy se establece en 0, calculará las referencias RPC mediante el formato "antiguo" de datos incorrectos. RPC se comunicará con versiones de Windows que calcular incorrectamente y deserializar construcciones IDL. Por ejemplo, RPC se comunicará con Windows 2000 o actualización las instalaciones de Windows XP SP1 que incluyen MS03-039.

      Si el valor de UDTAlignmentPolicy se establece en 0, RPC puede comunicarse con equipos basados en Windows 2000.

      Si el valor de UDTAlignmentPolicy se establece en 1, calculará las referencias RPC mediante el formato "nuevo" de cable correcto. RPC se comunicará con versiones de Windows que calcular referencias correctamente y deserializar construcciones IDL. Por ejemplo, RPC se comunicará con Windows Server 2003 o actualización instalaciones de Windows XP que incluyen MS03-026.

      Si la entrada UDTAlignmentPolicy no existe, la llamada remota producirá un error y RPC devolverán un código de error RPC_X_BAD_STUB_DATA cuando RPC intenta calcular referencias o deserializar afectado tipos.

      importante Cuando el valor de UDTAlignmentPolicy se establece en 0, el equipo basado en Windows Server 2003 puede intercambiar datos para la construcción IDL con las versiones de Windows que calcular incorrectamente y deserializar construcciones IDL. Sin embargo, la construcción IDL es los de formato incorrecto. Mediante incorrectos código de cálculo de referencias y resolución de referencias puede impedir que la interoperabilidad de esta misma construcción IDL y crea otro IDL, se cuando programas se comunican a los equipos que ejecutan versiones de Windows que correctamente calcular las referencias y deserializar construcciones IDL.

Información del Service pack para Windows XP

Para resolver este problema, obtenga el Service Pack más reciente para Windows XP. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322389Cómo obtener el service pack más reciente de Windows XP
En Windows XP Service Pack 2, puede modificar la entrada de registro UDTAlignmentPolicy para ajustar el modo en que RPC se comunica con diferentes versiones de Windows. Para ello, siga la sección paso 3 de "información de revisión para Windows Server 2003".

Información de revisión para Windows XP

Para comunicarse con versiones de Windows que calcular incorrectamente y deserializar IDL construcciones, como actualización de las instalaciones de Windows 2000 o Windows XP SP1 que incluyen MS03-039, instalar la actualización de MS03-039 en los equipos con Windows XP SP1. Para obtener más información acerca de MS03-039 actualizar, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824146MS03-039: Un saturación de búfer en RPCSS un atacante podría ejecutar los programas malintencionados
Un hotfix admitido no está actualmente disponible para equipos basados en Windows XP que se comunican mediante RPC con las versiones de Windows que calcular referencias correctamente y deserializar construcciones IDL. Estas versiones son Windows Server 2003 y actualización instalaciones de Windows XP que incluyen MS03-026.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:". Este problema se corrigió por primera vez en el Service Pack 2 de Microsoft Windows XP.

Más información

Versiones de Windows que calcular las referencias y la construcción IDL que se menciona en la sección "Causa" de deserializar correctamente los siguientes:
  • Microsoft Windows Server 2003 y versiones posteriores
  • Las instalaciones de Microsoft Windows XP Service Pack 1 (SP1) que incluyen MS03-026 actualización pero no incluyen la actualización de seguridad MS03-039. La actualización de MS03-026 está documentada en el siguiente artículo de Microsoft Knowledge Base:
    823980MS03-026: Saturación en la interfaz RPC de búfer puede permitir la ejecución de código
  • Microsoft Windows XP Service Pack 2 (SP2)
Nota Un hotfix admitido no está actualmente disponible para equipos basados en Windows 2000 que se comunican mediante RPC con las versiones de Windows que calcular referencias correctamente y deserializar construcciones IDL. Estas versiones son Windows Server 2003 y actualización instalaciones de Windows XP que incluyen MS03-026.

Propiedades

Id. de artículo: 824835 - Última revisión: jueves, 27 de febrero de 2014 - Versión: 13.6
La información de este artículo se refiere 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
Palabras clave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbtshoot kbwinxpsp2fix kbwinxppresp2fix kbfix kbbug KB824835 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 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