stringtranslate.com

Metarchivo de Windows

Windows Metafile ( WMF ) es un formato de archivo de imagen diseñado originalmente para Microsoft Windows en la década de 1990. El formato original de metarchivo de Windows no era independiente del dispositivo (aunque podría mejorarse con la ubicación de los encabezados) y podía contener gráficos vectoriales y componentes de mapa de bits . Actúa de manera similar a los archivos SVG . Posteriormente, los archivos WMF fueron reemplazados por metarchivos mejorados (archivos EMF), que permitían la independencia del dispositivo. Los archivos EMF luego se mejoraron mediante archivos EMF+ .

Básicamente, un metarchivo almacena una lista de registros que consta de comandos de dibujo, definiciones de propiedades y objetos gráficos para mostrar una imagen en pantalla. [1] Los comandos de dibujo utilizados están estrechamente relacionados con los comandos de la API de la interfaz de dispositivo gráfico (GDI) utilizada para dibujar en Microsoft Windows.

Hay tres tipos principales de metarchivos: WMF es un formato de 16 bits introducido en Windows 3.0 . Es el formato vectorial nativo para aplicaciones de Microsoft Office como Word , PowerPoint y Publisher . A partir de 2023 , está disponible la revisión 17 de la especificación del formato de metarchivo de Windows. [2] Los archivos EMF, que reemplazaron a los archivos WMF, funcionan según el mismo principio, solo que es un formato de archivo de 32 bits que también permite incrustar datos privados dentro de registros de "comentarios". [3] EMF+ es una extensión de los archivos EMF y está incrustada en estos registros de comentarios, lo que permite imágenes y texto usando comandos, objetos y propiedades similares a Windows GDI+ . [4]

Historia

El formato de archivo WMF original de 16 bits se especificó completamente en el volumen 4 de la documentación del SDK de Windows 3.1 de 1992 [5] (al menos si se combina con las descripciones de las funciones y estructuras individuales en los otros volúmenes), pero esa especificación era vaga en cuanto a pocos detalles. Estos manuales se publicaron como libros impresos disponibles en librerías sin hacer clic en el EULA ni otras restricciones de licencia inusuales (solo una advertencia general de que si se compra como parte de un paquete de software, el software estaría sujeto a uno).

Con el tiempo, la existencia de esa especificación histórica se olvidó en gran medida y algunas implementaciones alternativas recurrieron a la ingeniería inversa para descubrir el formato de archivo a partir de archivos WMF existentes, lo cual era difícil y propenso a errores. [6] En septiembre de 2006, Microsoft volvió a publicar la especificación del formato de archivo WMF en una forma más completa [7] en el contexto de la Promesa de especificación abierta de Microsoft , prometiendo no hacer valer los derechos de patente de los implementadores del formato de archivo. [8]

Posteriormente, Microsoft desaprobó los archivos WMF en favor de los archivos EMF de 32 bits , ya que los archivos WMF tenían problemas reales con la independencia del dispositivo, a pesar del uso de un encabezado de archivo "colocable" que proporcionaba una independencia básica del dispositivo. Microsoft descubrió que los desarrolladores que usaban el formato estaban "[incorporando] comentarios de aplicación, ubicación o escala en los metarchivos... Otros agregaron encabezados al metarchivo que proporcionaban diversa información específica de la aplicación", lo que provocó importantes problemas de compatibilidad. [9] Así, en 1992 con Windows NT 3.1 , Microsoft introdujo el formato Enhanced Metafile (EMF) [10] , un formato que se basó en la API Win32 y con el que incorporaron la independencia del dispositivo. [11] [9] : también se conocían como metarchivos NT. [12] Con el lanzamiento de Windows XP y GDI+, el conjunto de registros tuvo que aumentar significativamente y por eso Microsoft lanzó EMF+ como una extensión del formato de archivo EMF existente. [10] [13]

Estructura de metarchivo

Comparación de metarchivos de Windows: tenga en cuenta que los archivos WMF pueden incluir registros EMF+

Los archivos WMF, EMF y EMF+ constan de una serie de registros que se reproducen para producir resultados gráficos. Algunos registros definen objetos que pueden especificar objetos gráficos utilizados para determinar cómo se deben dibujar los gráficos (por ejemplo, los bolígrafos especifican el color y el ancho de las líneas). Cada uno de estos objetos se almacena en metarchivos y se coloca en una tabla de objetos, que rastrea el uso de objetos gráficos mientras se procesa el metarchivo. La tabla de objetos es una matriz asociativa de índices a estructuras de objetos gráficos definidas dentro del metarchivo.

Los archivos WMF y EMF manejan el procesamiento de objetos de manera diferente a los registros EMF+ en archivos EMF. Mientras se procesa un archivo WMF y EMF, los registros se leen en una tabla de objetos una vez que se define un objeto. Si se elimina un objeto, el objeto se libera de la tabla y el identificador se puede reutilizar. En particular, un objeto no se utilizará hasta que se seleccione específicamente durante la reproducción de una grabación. [14] [15] Esto difiere para los archivos EMF+, que también utilizan una matriz asociativa a través de un mapa hash que registra el objeto junto con un identificador de objeto. Sin embargo, a diferencia de los archivos WMF y EMF que pueden eliminar un objeto, cuando se crea un nuevo objeto que tiene el mismo índice que un objeto existente, la entrada en la tabla se reemplaza con el nuevo objeto. Un archivo EMF tampoco necesita seleccionar específicamente un objeto antes de usarse. [dieciséis]

WMF

Estructuras de metarchivos de Windows originales y colocables [17]

Los archivos WMF no se diseñaron originalmente para ser independientes del dispositivo, lo que significa que un archivo no se podía reproducir en dispositivos de salida que difieran del dispositivo original en el que se grabó el archivo. Aldus Corporation inventó una solución parcial a este problema , que agregó un encabezado "colocable" adicional, llamado "encabezado APM", [18] que agregó un rectángulo delimitador, una versión del metarchivo, el tamaño del metarchivo y la cantidad de objetos en el metarchivo. y el tamaño del registro individual más grande del metarchivo. [19] [20] Esto fue posteriormente incorporado al formato WMF por Microsoft , a partir de Windows 2000 . [21]

Los archivos WMF están estructurados por una serie de registros, comenzando con una serie de registros de control: el registro de encabezado, [19] [22] el registro colocable opcional antes mencionado, [23] y finalizando con un registro de fin de archivo . [19] [24]

Encapsulados por los registros de control están los registros que componen la imagen misma. Estos registros funcionan dentro de lo que se conoce como contexto del dispositivo de reproducción , que es la colección de propiedades y objetos que conforman el entorno gráfico de un dispositivo mientras el metarchivo se "reproduce" en este dispositivo de salida. [25]

Los registros distintos de los registros de control se pueden agrupar en gran medida en registros de mapa de bits, registros de dibujo, registros de objetos, registros de estado y registros de escape.

Registros de mapa de bits

Los registros de mapa de bits administran y generan imágenes de mapa de bits .

Registros de dibujo

Los registros de dibujo producen resultados gráficos.

Registros de objetos

Los registros de objetos crean y administran objetos gráficos. En los archivos WMF hay dos categorías amplias de objetos: objetos gráficos y objetos estructurales. Los objetos de estructura no se crean ni eliminan explícitamente en un WMF, sino que reemplazan estructuras complejas. Por ejemplo, BitmapCoreHeader contiene información sobre las dimensiones y el formato de color de un mapa de bits independiente del dispositivo, [52] que a su vez forma parte de un objeto DeviceIndependentBitmap. [53] Sin embargo, un objeto gráfico especifica parámetros para la salida de gráficos y durante la reproducción del WMF configura el contexto del dispositivo de reproducción. [54]

Los objetos gráficos pueden ser pinceles (define el estilo, color y patrón de un pincel que define cómo pintar un área del gráfico), fuentes (define propiedades que afectan la forma en que se muestra el texto), paletas (especifica colores como valores independientes del dispositivo, definido por una aplicación), plumas (especifica los atributos gráficos de una línea) y regiones (que especifican segmentos de línea y curva que definen una forma). [54]

Registros estatales

Los registros estatales administran las propiedades gráficas del contexto del dispositivo de reproducción. [67]

Registros de escape

Registro de escape genérico de WMF

Los registros de escape son un medio para ampliar la funcionalidad de los metarchivos a través de registros que de otro modo no están definidos como un tipo de registro WMF. Cada registro de escape contiene una función de registro, una función de escape y potencialmente datos de escape.

Los siguientes registros de escape conforman un archivo WMF.

Se encontró una vulnerabilidad importante en los registros de escape en torno al registro de escape Abort, que almacena el código del procedimiento de aborto dentro del propio registro. Esto afectó a los sistemas Windows (ver CVE - 2005-4560) y al proyecto Wine (ver CVE - 2006-0106). Según Secunia , "La vulnerabilidad se debe a un error en el manejo de los archivos Metafile de Windows ('.wmf') que contienen registros 'Escape' SETABORTPROC especialmente diseñados. Dichos registros permiten que se ejecuten funciones arbitrarias definidas por el usuario cuando se renderiza un archivo WMF falla." [142] Según la documentación del SDK de Windows 3.1, el escape SETABORTPROC quedó obsoleto y reemplazado por la función del mismo nombre en Windows 3.1, mucho antes de que se descubriera la vulnerabilidad WMF. [143] Sin embargo, el código de escape obsoleto se mantuvo por compatibilidad con programas de 16 bits escritos para (o al menos compatible con versiones anteriores) de Windows 3.0. Este cambio se produjo aproximadamente al mismo tiempo que Microsoft creaba la reimplementación de 32 bits de GDI para Windows NT y es probable que la vulnerabilidad se produjera durante este esfuerzo.

Después de que Steve Gibson acusó a Microsoft de implementar deliberadamente una puerta trasera en su código, [144] [145] Mark Russinovich lo refutó y afirmó que:

...las cosas eran diferentes cuando se diseñó el formato. En el modelo de memoria "grande" de Windows 3.1, el código es inherentemente independiente de la ubicación y Windows nunca fue parcheado, por lo que tanto Windows como una aplicación podrían simplemente copiar una función de la aplicación en el archivo WMF y asumir que funcionaría cuando la misma aplicación lo reproduzca en una sesión de ejecución posterior. En cualquier caso, no está claro que los desarrolladores imaginaran aplicaciones que crearan metarchivos en disco con procedimientos de cancelación. Además, como señaló Stephen Toulouse de Microsoft en la refutación de Microsoft a las afirmaciones de Steve, el panorama de seguridad a principios de la década de 1990 era muy diferente al actual y todo el código, incluido el almacenado en un archivo WMF, era inherentemente confiable. [146]

Peter Ferrie de Symantec Security Response, EE. UU., tampoco estuvo de acuerdo con Gibson y señaló que:

Gibson afirmó que se crea un hilo para ejecutar el controlador SetAbortProc. De hecho, no se crea ningún hilo para ejecutar el controlador: es una devolución de llamada, que es llamada por el analizador, y el analizador tiene que esperar hasta que regrese la devolución de llamada; de lo contrario, se pierde todo el objetivo de la función (abortar la impresión). . Según admitió él mismo, Gibson no leyó la documentación (de hecho, afirmó que no pudo encontrarla, aunque está disponible gratuitamente en el sitio web de Microsoft) y afirmó que el contexto del dispositivo no está disponible para el controlador de funciones. . Por supuesto, el contexto del dispositivo está disponible para el controlador de funciones: es uno de los dos parámetros que se le pasan (ver arriba) y es necesario para cancelar la impresión. Finalmente, Gibson afirmó que el flujo de control no podía volver a Windows. Se trata simplemente de que la función devuelva y descarte los parámetros que se pasaron en la pila. Si el registro está bien formado, Windows continuará analizando el archivo como antes. ... Gibson admite que estaba adivinando varias cosas. Desafortunadamente, adivinó mal. Supongo que ahora lo sabemos mejor. [147]

CEM

Encabezados de metarchivo mejorado de Windows

Los archivos EMF tienen tres versiones posibles de encabezados. Los encabezados originales son solo un contenedor para imágenes, la segunda y tercera versión encapsulan el encabezado original y contienen un registro en formato de píxel y soporte para registros OpenGL, y la tercera versión encapsula la segunda extensión del encabezado y aumenta la precisión de EMF y la escalabilidad de los EMF a medida que agrega la capacidad de medir distancias de las superficies del dispositivo utilizando el sistema métrico. [148]

Cada encabezado EMF comienza con un registro EMR_HEADER y registra las propiedades relevantes del dispositivo en el que se grabó la imagen del metarchivo. El encabezado EMF original tiene un encabezado de 80 bytes y una cadena de descripción de longitud variable opcional. [149] Otros metarchivos contienen campos de extensión, que encapsulan el encabezado original. EmfMetafileHeaderExtension1es un registro que se inserta directamente después del encabezado EMF original, especifica si hay un descriptor de formato de píxel y el desplazamiento del objeto descriptor dentro del encabezado, así como un campo que especifica si existen registros OpenGL en el metarchivo. [150] El descriptor de formato de píxel especifica las capacidades de la superficie de dibujo y si un píxel está codificado en RGBA o es un índice en una tabla de colores. [151] EmfMetafileHeaderExtension2 es un registro que se inserta directamente después del EmfMetafileHeaderExtension1registro y contiene dos campos con los valores X e Y para medir la superficie del dispositivo en micrómetros. [152]

Al igual que los archivos WMF, los registros se pueden clasificar por función; sin embargo, hay más tipos de registros en los archivos EMF que en los archivos WMF. Los registros se pueden clasificar como registros de control, mapa de bits, recorte, comentario, dibujo, escape, creación de objetos, manipulación de objetos, OpenGL, corchetes de ruta, estado y transformación.

CEM+

Con el lanzamiento de Windows XP , se introdujo el formato Enhanced Metafile Format Plus Extensions (EMF+). EMF+ proporciona una forma de serializar llamadas a la API de GDI+ de la misma manera que WMF/EMF almacena llamadas a GDI.

También existen versiones comprimidas de metarchivos de Windows conocidas como metarchivo comprimido de Windows (WMZ) y metarchivo mejorado de Windows comprimido (EMZ), [153] que son básicamente archivos WMF y EMF comprimidos con gzip , respectivamente.

Implementaciones

El formato WMF fue diseñado para ser ejecutado por la capa GDI de Windows con el fin de restaurar la imagen , pero como los archivos binarios WMF contienen la definición de las primitivas gráficas GDI que constituyen esta imagen, es posible diseñar bibliotecas alternativas que representen archivos binarios WMF. archivos o convertirlos a otros formatos gráficos.

Ver también

Referencias

  1. ^ Formato de metarchivo de Windows (PDF) , Microsoft, p. dieciséis
  2. ^ "[MS-WMF]: Formato de metarchivo de Windows". MSDN . 2021-04-26 . Consultado el 13 de septiembre de 2023 .
  3. ^ [MS-EMF]: Formato de metarchivo mejorado (PDF) , Microsoft, p. 17
  4. ^ [MS-EMFPLUS]: Extensiones de formato de metarchivo mejorado más (PDF) , Microsoft, p. 19
  5. ^ Referencia para programadores de Microsoft Windows 3.1, recursos del volumen 4, Microsoft Press 1992, ISBN 1-55615-494-1 , capítulo 3, págs. 
  6. ^ Caolan McNamara. "Referencia de metarchivo de ventana (wmf)" . Consultado el 1 de junio de 2008 . Estos códigos de operación no están implementados, porque no sé cuáles son, no se conoce documentación.
  7. ^ "[MS-WMF]: Especificación de formato de metarchivo de Windows" . Consultado el 1 de junio de 2008 .
  8. ^ "Promesa de especificación abierta de Microsoft". Microsoft . Consultado el 1 de junio de 2008 .
  9. ^ ab Metarchivos mejorados en Win32, Microsoft Developer Network Technology Group, 10 de junio de 1993
  10. ^ abcdef Leonard, Sean (septiembre de 2016). "Metarchivos de Windows". Tipos de medios de imagen de Windows. IETF . pag. 1.doi : 10.17487 /RFC7903 . ISSN  2070-1721. RFC 7903 . Consultado el 8 de febrero de 2020 .
  11. ^ "EMF", FileFormat , Aspose Pty Ltd, 11 de octubre de 2019 , consultado el 20 de enero de 2020
  12. ^ Petzold, Charles (11 de octubre de 1994), "Mearchivos NT y objetos GDI", PC Magazine , págs.
  13. ^ Poliakov, Alex; Brusentsev, Vitaly (2005). Programación de gráficos con GDI+ y DirectX. Publicaciones de lista A. pag. 68.ISBN 1-931769-39-7.
  14. ^ "3.1.4.1 Tabla de objetos WMF", [MS-WMF]: formato de metarchivo mejorado (PDF) , Microsoft, p. 187
  15. ^ "3.1.1.1 Tabla de objetos EMF", [MS-EMF]: Especificación de formato de metarchivo de Windows (PDF) , Microsoft, págs.
  16. ^ [MS-EMFPLUS]: Extensiones de formato de metarchivo mejorado más (PDF) , Microsoft, págs.
  17. ^ "Figura 1: Estructuras de metarchivos de Windows originales y colocables", Formato de metarchivo de Windows (PDF) , Microsoft, p. 17
  18. ^ Q66949: INFORMACIÓN: Funciones de metarchivos de Windows y metarchivos colocables de Aldus, Microsoft - a través de KnowledgeBase Archive: un archivo de las primeras bases de conocimientos de Microsoft
  19. ^ abc "1.3.1 Estructura de metarchivos", Formato de metarchivos de Windows (PDF) , Microsoft, p. 17
  20. ^ "2.3.2.3 Registro META_PLACEABLE", Formato de metarchivo de Windows (PDF) , Microsoft, p. 115
  21. ^ Formato de metarchivo de Windows (PDF) , Microsoft, p. 55, <55> Sección 2.3.2.3: Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 y Windows 95: esta característica no es compatible.
  22. ^ "2.3.2.2 Registro MTF_HEADERRECORD", Formato de metarchivo de Windows (PDF) , Microsoft, p. 114
  23. ^ "2.3.2.2 Registro MTF_HEADERRECORD", Formato de metarchivo de Windows (PDF) , Microsoft, p. 114
  24. ^ "2.3.2.1 Registro MTF_EOF", Formato de metarchivo de Windows (PDF) , Microsoft, p. 114
  25. ^ "Glosario 1.1", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , Microsoft, p. 13 , recuperado el 24 de enero de 2020
  26. ^ "Registro 2.3.1.1 META_BITBLT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 101-103 , consultado el 24 de enero de 2020
  27. ^ "2.3.1.2 Registro META_DIBBITBLT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , Microsoft, págs. 103-106 , consultado el 24 de enero de 2020
  28. ^ "Registro 2.3.1.3 META_DIBSTRETCHBITBLT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , Microsoft, págs. 106-108 , consultado el 24 de enero de 2020
  29. ^ "Registro 2.3.1.4 META_SETDIBTODEV", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , Microsoft, págs. 108-109 , consultado el 24 de enero de 2020
  30. ^ "Registro 2.3.1.5 META_STRETCHBLT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , Microsoft, págs. 109-110 , consultado el 24 de enero de 2020
  31. ^ "Registro 2.3.1.6 META_STRETCHDIB", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , Microsoft, págs. 103-106 , consultado el 24 de enero de 2020
  32. ^ "2.3.3.1 Registro META_ARC", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 101-103 , consultado el 24 de enero de 2020
  33. ^ "2.3.3.2 Registro META_CHORD", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 117-118 , consultado el 24 de enero de 2020
  34. ^ "2.3.3.3 Registro META_ELLIPSE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 119 , recuperado el 24 de enero de 2020
  35. ^ "2.3.3.4 Registro META_EXTFLOODFILL", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 119-120 , consultado el 24 de enero de 2020
  36. ^ "Registro 2.3.3.5 META_EXTTEXTOUT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 119-120 , consultado el 24 de enero de 2020
  37. ^ "2.3.3.6 Registro META_FILLREGION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 121 , recuperado el 24 de enero de 2020
  38. ^ "2.3.3.7 Registro META_FLOODFILL", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 119-120 , consultado el 24 de enero de 2020
  39. ^ "Registro 2.3.3.8 META_FRAMEREGION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 122-123 , consultado el 24 de enero de 2020
  40. ^ "Registro 2.3.3.9 META_INVERTREGION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 123 , recuperado el 24 de enero de 2020
  41. ^ "Registro 2.3.3.10 META_LINETO", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 123-124 , consultado el 24 de enero de 2020
  42. ^ "Registro 2.3.3.11 META_PAINTREGION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 124 , recuperado el 24 de enero de 2020
  43. ^ "Registro 2.3.3.12 META_PATBLT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 124-125 , consultado el 24 de enero de 2020
  44. ^ "2.3.3.13 Registro META_PIE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 125-126 , consultado el 24 de enero de 2020
  45. ^ "Registro 2.3.3.14 META_POLYLINE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 126 , recuperado el 24 de enero de 2020
  46. ^ "2.3.3.15 Registro META_POLYGON", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 127 , recuperado el 24 de enero de 2020
  47. ^ "Registro 2.3.3.16 META_POLYPOLYGON", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 127-128 , consultado el 24 de enero de 2020
  48. ^ "Registro 2.3.3.17 META_RECTANGLE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 127-128 , consultado el 24 de enero de 2020
  49. ^ "Registro 2.3.3.18 META_ROUNDRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 128-129 , consultado el 24 de enero de 2020
  50. ^ "Registro 2.3.3.19 META_SETPIXEL", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 129-130 , consultado el 24 de enero de 2020
  51. ^ "Registro 2.3.3.20 META_TEXTOUT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 130 , recuperado el 24 de enero de 2020
  52. ^ "2.2.2.2. Objeto BitmapCoreHeader", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 85 , recuperado el 25 de enero de 2020
  53. ^ "2.2.2.9. Objeto DeviceIndependentBitmap", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 91 , recuperado el 25 de enero de 2020
  54. ^ ab "2.2.1. Objetos gráficos", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 79 , recuperado el 25 de enero de 2020
  55. ^ "Registro 2.3.4.1 META_CREATEBRUSHINDIRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 131-132 , consultado el 25 de enero de 2020
  56. ^ "2.3.4.2 Registro META_CREATEFONTINDIRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 132 , recuperado el 25 de enero de 2020
  57. ^ "Registro 2.3.4.4 META_CREATEPATTERNBRUSH", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 133-135 , consultado el 25 de enero de 2020
  58. ^ "2.3.4.3 Registro META_CREATEPALETTE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 132-133 , consultado el 25 de enero de 2020
  59. ^ "Registro 2.3.4.5 META_CREATEPENINDIRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 134-135 , consultado el 25 de enero de 2020
  60. ^ "Registro 2.3.4.6 META_CREATEREGION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 135 , recuperado el 25 de enero de 2020
  61. ^ "2.3.4.7 Registro META_DELETEOBJECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 135 , recuperado el 25 de enero de 2020
  62. ^ "Registro 2.3.4.8 META_CREATEBRUSHINDIRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 135-136 , consultado el 25 de enero de 2020
  63. ^ "Registro 2.3.4.9 META_DIBCREATEPATTERNBRUSH", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 136-137 , consultado el 25 de enero de 2020
  64. ^ "Registro 2.3.4.10 META_SELECTCLIPREGION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 137 , recuperado el 25 de enero de 2020
  65. ^ "Registro 2.3.4.11 META_SELECTOBJECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 137-138 , consultado el 25 de enero de 2020
  66. ^ "Registro 2.3.4.11 META_SELECTPLAETTE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 139 , recuperado el 25 de enero de 2020
  67. ^ "2.3.5 Tipos de registros de estado", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 138 , recuperado el 28 de enero de 2020
  68. ^ "Registro 2.3.5.1 META_ANIMATEPALETTE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 140 , recuperado el 28 de enero de 2020
  69. ^ "2.3.5.2 Registro META_EXCLUDECLIPRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 140-141 , consultado el 28 de enero de 2020
  70. ^ "2.3.5.3 Registro META_INTERSECTCLIPRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 141-142 , consultado el 28 de enero de 2020
  71. ^ "2.3.5.1 Registro META_MOVETO", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 142 , recuperado el 28 de enero de 2020
  72. ^ "2.3.5.4 Registro META_OFFSETCLIPRGN", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 142-143 , consultado el 28 de enero de 2020
  73. ^ "Registro 2.3.5.5 META_OFFSETVIEWPORTORG", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 143 , recuperado el 28 de enero de 2020
  74. ^ "Registro 2.3.5.6 META_OFFSETWINDOWORG", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 131-132 , consultado el 28 de enero de 2020
  75. ^ "Registro 2.3.5.7 META_REALIZEPALETTE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 143-144 , consultado el 28 de enero de 2020
  76. ^ "Registro 2.3.5.8 META_RESIZEPALETTE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 144 , recuperado el 28 de enero de 2020
  77. ^ "Registro 2.3.5.9 META_RESTOREDC", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 145 , recuperado el 28 de enero de 2020
  78. ^ "Registro 2.3.5.10 META_SAVEDC", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 145 , recuperado el 28 de enero de 2020
  79. ^ "Registro 2.3.5.11 META_SCALEVIEWPORTEXT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 145-146 , consultado el 28 de enero de 2020
  80. ^ "Registro 2.3.5.12 META_SCALEWINDOWEXT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 146-147 , consultado el 28 de enero de 2020
  81. ^ "Registro 2.3.5.13 META_SETBKCOLOR", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 147 , recuperado el 28 de enero de 2020
  82. ^ "Registro 2.3.5.14 META_SETBKMODE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 147-148 , consultado el 28 de enero de 2020
  83. ^ "Registro 2.3.5.15 META_SETLAYOUT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 148 , recuperado el 28 de enero de 2020
  84. ^ "Registro 2.3.5.16 META_SETMAPMODE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 148-149 , consultado el 28 de enero de 2020
  85. ^ "Registro 2.3.5.17 META_SETMAPPERFLAGS", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 131-132 , consultado el 28 de enero de 2020
  86. ^ "Registro 2.3.5.18 META_ANIMATEPALETTE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 149 , recuperado el 28 de enero de 2020
  87. ^ "Registro 2.3.5.19 META_SETPALENTRIES", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 149-150 , consultado el 28 de enero de 2020
  88. ^ "Registro 2.3.5.20 META_SETRELABS", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 150 , recuperado el 28 de enero de 2020
  89. ^ "Registro 2.3.5.21 META_SETROP2", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 151 , recuperado el 28 de enero de 2020
  90. ^ "Registro 2.3.5.1 META_SETSTRETCHBLTMODE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 151-152 , consultado el 28 de enero de 2020
  91. ^ "Registro 2.3.5.22 META_SETTEXTALIGN", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 152 , recuperado el 28 de enero de 2020
  92. ^ "Registro 2.3.5.1 META_SETTEXTCHAREXTRA", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 152-153 , consultado el 28 de enero de 2020
  93. ^ "Registro 2.3.5.23 META_SETTEXTCOLOR", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 153 , recuperado el 28 de enero de 2020
  94. ^ "Registro 2.3.5.24 META_SETTEXTJUSTIFICATION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 153-154 , consultado el 28 de enero de 2020
  95. ^ "Registro 2.3.5.25 META_SETVIEWPORTEXT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 154 , recuperado el 28 de enero de 2020
  96. ^ "Registro 2.3.5.26 META_SETVIEWPORTORG", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 154-155 , consultado el 28 de enero de 2020
  97. ^ "Registro 2.3.5.27 META_SETWINDOWEXT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 155 , recuperado el 28 de enero de 2020
  98. ^ "Registro 2.3.5.28 META_SETWINDOWORG", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 155 , recuperado el 28 de enero de 2020
  99. ^ "2.3.6.2. Registro ABORTDOC", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 158-159 , consultado el 28 de enero de 2020
  100. ^ "2.3.6.3. Registro BEGIN_PATH", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 159 , recuperado el 28 de enero de 2020
  101. ^ "2.3.6.4. Registro CHECK_JPEGFORMAT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 159-160 , consultado el 28 de enero de 2020
  102. ^ "2.3.6.5. Registro CHECK_PNGFORMAT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 160 , recuperado el 28 de enero de 2020
  103. ^ "2.3.6.6. Registro CLIP_TO_PATH", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 160 , recuperado el 28 de enero de 2020
  104. ^ "2.3.6.7. Registro CLOSE_CHANNEL", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 162 , recuperado el 28 de enero de 2020
  105. ^ "2.3.6.8. Registro DOWNLOAD_FACE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 162–163 , consultado el 28 de enero de 2020
  106. ^ "2.3.6.9. Registro DOWNLOAD_HEADER", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 158-159 , consultado el 28 de enero de 2020
  107. ^ "2.3.6.10. Registro DRAW_PATTERNRECT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 163–164 , consultado el 28 de enero de 2020
  108. ^ "2.3.6.11. Registro ENCAPSULADO_POSTSCRIPT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 164 , recuperado el 28 de enero de 2020
  109. ^ "2.3.6.12. Registro END_PATH", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 164–165 , consultado el 28 de enero de 2020
  110. ^ "2.3.6.13. Registro ENDDOC", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 165 , recuperado el 28 de enero de 2020
  111. ^ "2.3.6.14. Registro EPS_PRINTING", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 165–166 , consultado el 28 de enero de 2020
  112. ^ "2.3.6.15. Registro EXTTEXTOUT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 166–167 , consultado el 28 de enero de 2020
  113. ^ "2.3.6.16. Registro GET_COLORTABLE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 167–168 , consultado el 28 de enero de 2020
  114. ^ "2.3.6.17. Registro GET_DEVICEUNITS", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 168 , recuperado el 28 de enero de 2020
  115. ^ "2.3.6.18. Registro GET_EXTENDED_TEXTMETRICS", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 168-169 , consultado el 28 de enero de 2020
  116. ^ "2.3.6.19. Registro GET_FACENAME", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 169 , recuperado el 28 de enero de 2020
  117. ^ "2.3.6.20. Registro GET_PAIRKERNTABLE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 169-170 , consultado el 28 de enero de 2020
  118. ^ "2.3.6.21. Registro GET_PHYSPAGESIZE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 170 , recuperado el 28 de enero de 2020
  119. ^ "2.3.6.22. Registro GET_PRINTINGOFFSET", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 170-171 , consultado el 28 de enero de 2020
  120. ^ "2.3.6.23. Registro GET_PS_FEATURESETTING", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 171 , recuperado el 28 de enero de 2020
  121. ^ "2.3.6.24. Registro GET_SCALINGFACTOR", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 171-172 , consultado el 28 de enero de 2020
  122. ^ "2.3.6.25. Registro META_ESCAPE_ENHANCED_METAFILE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 172-173 , consultado el 28 de enero de 2020
  123. ^ "2.3.6.26. Registro METAFILE_DRIVER", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 173-174 , consultado el 28 de enero de 2020
  124. ^ "2.3.6.27. Registro NEWFRAME", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 174-175 , consultado el 28 de enero de 2020
  125. ^ "2.3.6.28. Registro NEXTBAND", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 174-175 , consultado el 28 de enero de 2020
  126. ^ "2.3.6.29. Registro PASSTHROUGH", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 175 , recuperado el 28 de enero de 2020
  127. ^ "2.3.6.30. Registro POSTSCRIPT_DATA", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 176 , recuperado el 28 de enero de 2020
  128. ^ "2.3.6.31. Registro POSTSCRIPT_IDENTIFY", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 176-177 , consultado el 28 de enero de 2020
  129. ^ "2.3.6.32. Registro POSTSCRIPT_IGNORE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 177 , recuperado el 28 de enero de 2020
  130. ^ "2.3.6.33. Registro POSTSCRIPT_INJECTION", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 177-178 , consultado el 28 de enero de 2020
  131. ^ "2.3.6.34. Registro POSTSCRIPT_PASSTHROUGH", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 178 , recuperado el 28 de enero de 2020
  132. ^ "2.3.6.35. Registro OPEN_CHANNEL", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 179 , recuperado el 28 de enero de 2020
  133. ^ "2.3.6.36. Registro QUERY_DIBSUPPORT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 179–180 , consultado el 28 de enero de 2020
  134. ^ "2.3.6.37. Registro QUERY_ESCSUPPORT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 180 , recuperado el 28 de enero de 2020
  135. ^ "2.3.6.38. Registro SET_COLORTABLE", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 180–181 , consultado el 28 de enero de 2020
  136. ^ "2.3.6.39. Registro SET_COPYCOUNT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 181 , recuperado el 28 de enero de 2020
  137. ^ "2.3.6.40. Registro SET_LINECAP", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 181–182 , consultado el 28 de enero de 2020
  138. ^ "2.3.6.41. Registro SET_LINEJOIN", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 182–183 , consultado el 28 de enero de 2020
  139. ^ "2.3.6.42. Registro SET_MITERLIMIT", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 183 , recuperado el 28 de enero de 2020
  140. ^ "2.3.6.43. Registro SPCLPASSTHROUGH2", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , págs. 183–184 , consultado el 28 de enero de 2020
  141. ^ "2.3.6.44. Registro STARTDOC", [MS-WMF]: Especificación de formato de metarchivo de Windows (PDF) , p. 184 , recuperado el 28 de enero de 2020
  142. ^ "Microsoft Windows WMF" SETABORTPROC "Ejecución de código arbitrario". Secunia . Aviso de Secunia: SA18255. Archivado desde el original el 2 de enero de 2006.
  143. ^ Escapes compatibles con Pscript, Microsoft , consultado el 28 de enero de 2020
  144. ^ "¿La puerta trasera de Windows MetaFile?". ¡Seguridad GRC ahora! (Podcast). Corporación de Investigación Gibson . 12 de enero de 2006 . Consultado el 28 de enero de 2020 .
  145. ^ Gibson, Steve (12 de enero de 2006), "Re: ¡No querrás perderte Security Now! de esta noche, n.º 22", grc.news.feedback , consultado el 28 de enero de 2020
  146. ^ Russinovich, Mark (18 de enero de 2006), "Dentro de la puerta trasera de WMF", TechNet , Microsoft - a través de Microsoft Tech Community
  147. ^ Ferrie, Peter (2 de febrero de 2006), Dentro del formato de metaarchivo de Windows (PDF) , Virus Bulletin , consultado el 24 de enero de 2020 - a través de Symantec
  148. ^ "1.3.1. Estructura de metarchivo", [MS-EMF]: formato de metarchivo mejorado (PDF) , Microsoft, págs.
  149. ^ "2.3.4.2.1 Registro EmfMetafileHeader", [MS-EMF]: Formato de metarchivo mejorado (PDF) , Microsoft, p. 120
  150. ^ "2.2.10 Objeto HeaderExtension1", [MS-EMF]: formato de metarchivo mejorado (PDF) , Microsoft, págs.
  151. ^ "2.2.22 Objeto PixelFormatDescriptor", [MS-EMF]: formato de metarchivo mejorado (PDF) , Microsoft, págs.
  152. ^ "2.3.4.2.3 Registro EmfMetafileHeaderExtension2", [MS-EMF]: formato de metarchivo mejorado (PDF) , Microsoft, págs.
  153. ^ "Recibe el mensaje de error" Este archivo tiene un formato gráfico no compatible "cuando intenta insertar una imagen en una presentación de PowerPoint para Mac". Microsoft . Archivado desde el original el 19 de abril de 2014 . Consultado el 19 de abril de 2014 .

enlaces externos