stringtranslate.com

Метафайл Windows

Windows Metafile ( WMF ) — формат файла изображения , изначально разработанный для Microsoft Windows в 1990-х годах. Исходный формат Windows Metafile не был аппаратно-независимым (хотя его можно было сделать более аппаратно-независимым с помощью заголовков размещения) и может содержать как векторную графику, так и компоненты растрового изображения . Он действует аналогично файлам SVG . Позднее файлы WMF были заменены расширенными метафайлами (файлами EMF), которые обеспечивали аппаратно-независимость. Затем файлы EMF сами были улучшены с помощью файлов EMF+ .

По сути, метафайл хранит список записей, состоящий из команд рисования, определений свойств и графических объектов для отображения изображения на экране. [1] Используемые команды рисования тесно связаны с командами API интерфейса графических устройств (GDI), используемого для рисования в Microsoft Windows.

Существует три основных типа метафайлов: WMF — это 16-битный формат, представленный в Windows 3.0 . Это собственный векторный формат для приложений Microsoft Office , таких как Word , PowerPoint и Publisher . По состоянию на 2023 год доступна редакция 17 спецификации формата метафайлов Windows. [2] Файлы EMF, которые заменили файлы WMF, работают по тому же принципу, только это 32-битный формат файла, который также позволяет встраивать личные данные в записи «комментариев». [3] EMF+ — это расширение файлов EMF, встроенное в эти записи комментариев, позволяющее использовать изображения и текст с помощью команд, объектов и свойств, аналогичных Windows GDI+ . [4]

История

Оригинальный 16-битный формат файла WMF был полностью описан в томе 4 документации Windows 3.1 SDK 1992 года [5] (по крайней мере, в сочетании с описаниями отдельных функций и структур в других томах), но эта спецификация была расплывчатой ​​в отношении некоторых деталей. Эти руководства были опубликованы в виде печатных книг, доступных в книжных магазинах, без каких-либо ограничений по клику EULA или других необычных ограничений по лицензированию (только общее предупреждение о том, что если оно будет куплено как часть пакета программного обеспечения, программное обеспечение будет подпадать под одно из них).

Со временем существование этой исторической спецификации было в значительной степени забыто, и некоторые альтернативные реализации прибегали к обратному проектированию, чтобы выяснить формат файла из существующих файлов WMF, что было сложно и подвержено ошибкам. [6] В сентябре 2006 года Microsoft снова опубликовала спецификацию формата файла WMF в более полной форме [7] в контексте Microsoft Open Specification Promise , пообещав не заявлять патентные права разработчикам формата файла. [8]

Microsoft позже отказалась от файлов WMF в пользу 32-битных файлов EMF, поскольку файлы WMF имели реальные проблемы с независимостью от устройств, несмотря на использование «размещаемого» заголовка файла, который обеспечивал базовую независимость от устройств. Microsoft обнаружила, что разработчики, использующие этот формат, «внедряли комментарии о приложении, местоположении или масштабировании в метафайлы... Другие добавляли заголовки в метафайл, которые предоставляли различную информацию, специфичную для приложения», что вызывало серьезные проблемы совместимости. [9] Таким образом, в 1992 году с Windows NT 3.1 Microsoft представила формат Enhanced Metafile (EMF) [10] — формат, основанный на Win32 API, с помощью которого они встроили независимость от устройств. [11] [9] — они также были известны как метафайлы NT. [12] С выпуском Windows XP и GDI+ набор записей должен был быть значительно увеличен, и поэтому Microsoft выпустила EMF+ как расширение существующего формата файла EMF. [10] [13]

Структура метафайла

Сравнение метафайлов Windows – файлы WMF могут включать записи EMF+

Файлы WMF, EMF и EMF+ состоят из серии записей, которые воспроизводятся для создания графического вывода. Некоторые записи определяют объекты, которые могут указывать графические объекты, используемые для определения того, как должна быть нарисована графика (например, перья указывают цвет и ширину линий). Каждый из этих объектов хранится в метафайлах и помещается в таблицу объектов, которая отслеживает использование графических объектов при обработке метафайла. Таблица объектов представляет собой ассоциативный массив индексов для структур графических объектов, определенных в метафайле.

Файлы WMF и EMF обрабатывают объекты по-разному, чем записи EMF+ в файлах EMF. По мере обработки файла WMF и EMF записи считываются в таблицу объектов после определения объекта. Если объект удаляется, то объект освобождается из таблицы, и идентификатор может быть использован повторно. В частности, объект не будет использоваться, пока он не будет специально выбран во время воспроизведения записи. [14] [15] Это отличается для файлов EMF+, которые также используют ассоциативный массив через хэш-карту , которая записывает объект вместе с идентификатором объекта. Однако, в отличие от файлов WMF и EMF, которые могут удалять объект, когда создается новый объект с тем же индексом, что и существующий объект, запись в таблице заменяется новым объектом. Файлу EMF также не нужно специально выбирать объект перед его использованием. [16]

ВМФ

Структуры исходных и размещаемых метафайлов Windows [17]

Файлы WMF изначально не были разработаны как независимые от устройств, то есть файл не мог быть воспроизведен на устройствах вывода, которые отличались от исходного устройства, на котором был записан файл. Частичное решение этой проблемы было изобретено Aldus Corporation , которая добавила дополнительный «размещаемый» заголовок, называемый «заголовком APM», [18] , который добавлял ограничивающий прямоугольник, версию метафайла, размер метафайла, количество объектов в метафайле и размер самой большой отдельной записи в метафайле. [19] [20] Позднее это было включено в формат WMF компанией Microsoft , начиная с Windows 2000. [ 21]

Файлы WMF структурированы серией записей, начиная с нескольких контрольных записей: записи заголовка, [19] [22] вышеупомянутой необязательной размещаемой записи, [23] и заканчивая записью конца файла . [19] [24]

Инкапсулированные в контрольные записи записи составляют само изображение. Эти записи работают в рамках того, что известно как контекст устройства воспроизведения , который представляет собой набор свойств и объектов, составляющих графическую среду устройства, когда метафайл «воспроизводится» на этом устройстве вывода. [25]

Записи, не являющиеся контрольными, можно в основном сгруппировать в записи растровых изображений, записи чертежей, записи объектов, записи состояний и записи escape-сигналов.

Записи в формате Bitmap

Записи растровых изображений управляют и выводят растровые изображения .

Чертежные записи

Записи чертежей создают графический вывод.

Объектные записи

Записи объектов создают и управляют графическими объектами. В файлах WMF есть две широкие категории объектов — графические объекты и структурные объекты. Структурные объекты явно не создаются и не удаляются в WMF, вместо этого они являются сложными структурами. Например, BitmapCoreHeader содержит информацию о размерах и цветовом формате аппаратно-независимого растрового изображения, [52] которое само по себе является частью объекта DeviceIndependentBitmap. [53] Графический объект, однако, определяет параметры для графического вывода и во время воспроизведения WMF устанавливает контекст устройства воспроизведения. [54]

Графическими объектами могут быть кисти (определяют стиль, цвет и узор кисти, который определяет, как закрашивать область графики), шрифты (определяют свойства, которые влияют на то, как отображается текст), палитры (определяют цвета как независимые от устройства значения, определяемые приложением), перья (определяют графические атрибуты линии) и области (определяют сегменты линий и кривых, которые определяют форму). [54]

Государственные записи

Записи состояний управляют графическими свойствами контекста устройства воспроизведения. [67]

Записи о побегах

WMF общая запись о побеге

Escape-записи — это средства расширения функциональности метафайла с помощью записей, которые иначе не определяются как тип записи WMF. Каждая escape-запись содержит функцию записи, escape-функцию и потенциально escape-данные.

Следующие записи побега составляют файл WMF.

Была обнаружена серьезная уязвимость в записях escape вокруг записи Abort escape, которая хранит код процедуры прерывания внутри самой записи. Это затронуло системы Windows (см. CVE - 2005-4560) и проект Wine (см. CVE - 2006-0106). По словам Secunia , «уязвимость вызвана из-за ошибки в обработке файлов метафайлов Windows ('.wmf'), содержащих специально созданные записи SETABORTPROC 'Escape'. Такие записи позволяют выполнять произвольную пользовательскую функцию при сбое рендеринга файла WMF». [142] Согласно документации Windows 3.1 SDK, функция SETABORTPROC escape устарела и была заменена функцией с тем же именем в Windows 3.1 задолго до обнаружения уязвимости WMF. [143] Однако устаревший код escape был сохранен для совместимости с 16-битными программами, написанными для (или, по крайней мере, обратно совместимыми) Windows 3.0. Это изменение произошло примерно в то же время, когда Microsoft создавала 32-битную версию GDI для Windows NT, и вполне вероятно, что уязвимость возникла во время этих усилий.

После того, как Стив Гибсон обвинил Microsoft в преднамеренном внедрении бэкдора в свой код, [144] [145] Марк Руссинович выступил с опровержением и заявил, что:

...все было по-другому, когда формат был спроектирован. В Windows 3.1 «большая» модель памяти код изначально независим от местоположения, и Windows никогда не была исправлена, поэтому и Windows, и приложение могли просто скопировать функцию приложения в файл WMF и предположить, что она будет работать при воспроизведении тем же приложением в более позднем сеансе запуска. В любом случае, не ясно, предполагали ли разработчики, что приложения будут создавать метафайлы на диске с процедурами отмены. Кроме того, как указал Стивен Тулуз из Microsoft в опровержении Microsoft заявлений Стива, ландшафт безопасности в начале 1990-х годов сильно отличался от сегодняшнего, и весь код, включая тот, что хранился в файле WMF, изначально был доверенным. [146]

Питер Ферри из Symantec Security Response, США также не согласился с Гибсоном, отметив, что:

Гибсон утверждал, что поток создается для запуска обработчика SetAbortProc. На самом деле, для запуска обработчика не создается никакого потока — это обратный вызов, который вызывается парсером, и парсер должен ждать, пока обратный вызов не вернется, иначе весь смысл функции (прервать печать) теряется. По его собственному признанию, Гибсон не читал документацию (на самом деле, он утверждал, что не смог ее найти, хотя она свободно доступна на веб-сайте Microsoft), и он утверждал, что контекст устройства недоступен обработчику функции. Конечно, контекст устройства доступен обработчику функции — это один из двух параметров, которые ему передаются (см. выше), и он требуется для того, чтобы прервать печать. Наконец, Гибсон утверждал, что поток управления не может вернуться в Windows. Это просто вопрос возврата и отбрасывания функцией параметров, которые были переданы в стеке. Если запись правильно сформирована, Windows продолжит анализировать файл, как и раньше. ... Гибсон признает, что он догадывался о многих вещах. К сожалению, он догадывался плохо. Думаю, теперь мы знаем лучше. [147]

ЭМП

Заголовки расширенных метафайлов Windows

Файлы EMF имеют три возможных версии заголовков. Исходный заголовок — это просто контейнер для изображений, вторая и третья версии инкапсулируют исходный заголовок и содержат запись формата пикселей и поддержку записей OpenGL, а третья версия инкапсулирует второе расширение заголовка и повышает точность EMF и масштабируемость EMF, поскольку добавляет возможность измерять расстояния поверхностей устройств с использованием метрической системы. [148]

Каждый заголовок EMF начинается с записи EMR_HEADER и записывает соответствующие свойства устройства, на котором было записано изображение метафайла. Исходный заголовок EMF имеет заголовок размером 80 байт и необязательную строку описания переменной длины. [149] Другие метафайлы содержат поля расширения, которые инкапсулируют исходный заголовок. EmfMetafileHeaderExtension1— это запись, которая вставляется непосредственно после исходного заголовка EMF, указывает, есть ли дескриптор формата пикселя и смещение объекта дескриптора в заголовке, а также поле, которое указывает, существуют ли записи OpenGL в метафайле. [150] Дескриптор формата пикселя указывает возможности поверхности рисования и кодируется ли пиксель в RGBA или является индексом в таблице цветов. [151] EmfMetafileHeaderExtension2 — это запись, которая вставляется непосредственно после EmfMetafileHeaderExtension1записи и содержит два поля со значениями X и Y для измерения поверхности устройства в микрометрах. [152]

Как и файлы WMF, записи можно классифицировать по функции, однако в файлах EMF больше типов записей, чем в файлах WMF. Записи можно классифицировать как записи управления, битовой карты, обрезки, комментария, рисования, экранирования, создания объектов, манипуляции объектами, OpenGL, скобки пути, состояния и преобразования.

ЭМП+

С выпуском Windows XP был представлен формат Enhanced Metafile Format Plus Extensions (EMF+). EMF+ предоставляет способ сериализации вызовов API GDI+ таким же образом, как WMF/EMF хранит вызовы GDI.

Существуют также сжатые версии метафайлов Windows, известные как сжатый метафайл Windows (WMZ) и сжатый расширенный метафайл Windows (EMZ) [153] , которые по сути представляют собой сжатые с помощью gzip файлы WMF и EMF соответственно.

Реализации

Формат WMF был разработан для выполнения слоем Windows GDI с целью восстановления изображения , но поскольку двоичные файлы WMF содержат определение графических примитивов GDI, составляющих это изображение, можно разработать альтернативные библиотеки, которые визуализируют двоичные файлы WMF или преобразуют их в другие графические форматы.

Смотрите также

Ссылки

  1. ^ Формат метафайла Windows (PDF) , Microsoft, стр. 16
  2. ^ "[MS-WMF]: Формат метафайла Windows". MSDN . 2021-04-26 . Получено 2023-09-13 .
  3. ^ [MS-EMF]: Расширенный формат метафайла (PDF) , Microsoft, стр. 17
  4. ^ [MS-EMFPLUS]: Расширенный формат метафайла плюс расширения (PDF) , Microsoft, стр. 19
  5. ^ Справочник программиста Microsoft Windows 3.1, том 4, ресурсы, Microsoft Press 1992, ISBN 1-55615-494-1 , глава 3, стр. 21–45 
  6. ^ Каолан Макнамара. "Window Metafile (wmf) Reference" . Получено 2008-06-01 . Эти опкоды не реализованы, по той причине, что я не знаю, что они из себя представляют, нет известной документации
  7. ^ "[MS-WMF]: Спецификация формата метафайла Windows" . Получено 01.06.2008 .
  8. ^ "Microsoft Open Specification Promise". Microsoft . Получено 2008-06-01 .
  9. ^ ab Enhanced Metafiles in Win32, Microsoft Developer Network Technology Group, 10 июня 1993 г.
  10. ^ abcdef Леонард, Шон (сентябрь 2016 г.). «Метафайлы Windows». Типы носителей изображений Windows. IETF . стр. 1. doi : 10.17487/RFC7903 . ISSN  2070-1721. RFC 7903. Получено 8 февраля 2020 г.
  11. ^ "EMF", FileFormat , Aspose Pty Ltd, 11 октября 2019 г. , получено 20 января 2020 г.
  12. Петцольд, Чарльз (11 октября 1994 г.), «Метафайлы NT и объекты GDI», PC Magazine , стр. 343–347.
  13. ^ Поляков, Алекс; Брусенцев, Виталий (2005). Графическое программирование с GDI+ и DirectX. A-List Publishing. стр. 68. ISBN 1-931769-39-7.
  14. ^ "3.1.4.1 Таблица объектов WMF", [MS-WMF]: Расширенный формат метафайла (PDF) , Microsoft, стр. 187
  15. ^ "3.1.1.1 Таблица объектов EMF", [MS-EMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 212–214
  16. ^ [MS-EMFPLUS]: Расширенный формат метафайла плюс расширения (PDF) , Microsoft, стр. 204–205
  17. ^ «Рисунок 1: Структуры исходных и размещаемых метафайлов Windows», Формат метафайлов Windows (PDF) , Microsoft, стр. 17
  18. ^ Q66949: ИНФОРМАЦИЯ: Функции метафайлов Windows и размещаемые метафайлы Aldus, Microsoft – через Архив базы знаний: Архив ранней базы знаний Microsoft
  19. ^ abc "1.3.1 Структура метафайла", Формат метафайла Windows (PDF) , Microsoft, стр. 17
  20. ^ "2.3.2.3 META_PLACEABLE Record", Формат метафайла Windows (PDF) , Microsoft, стр. 115
  21. ^ Формат метафайла Windows (PDF) , Microsoft, стр. 55, <55> Раздел 2.3.2.3: Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 и Windows 95: эта функция не поддерживается.
  22. ^ "2.3.2.2 Запись MTF_HEADERRECORD", Формат метафайла Windows (PDF) , Microsoft, стр. 114
  23. ^ "2.3.2.2 Запись MTF_HEADERRECORD", Формат метафайла Windows (PDF) , Microsoft, стр. 114
  24. ^ "2.3.2.1 MTF_EOF Record", Формат метафайла Windows (PDF) , Microsoft, стр. 114
  25. ^ "1.1 Glossary", [MS-WMF]: Windows Metafile Format Specification (PDF) , Microsoft, стр. 13 , получено 24.01.2020
  26. ^ "2.3.1.1 META_BITBLT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 101–103 , получено 24.01.2020
  27. ^ "2.3.1.2 META_DIBBITBLT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 103–106 , получено 24.01.2020
  28. ^ "2.3.1.3 META_DIBSTRETCHBITBLT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 106–108 , получено 24.01.2020
  29. ^ "2.3.1.4 META_SETDIBTODEV Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 108–109 , получено 24.01.2020
  30. ^ "2.3.1.5 META_STRETCHBLT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 109–110 , получено 24.01.2020
  31. ^ "2.3.1.6 META_STRETCHDIB Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 103–106 , получено 24.01.2020
  32. ^ "2.3.3.1 META_ARC Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 101–103 , получено 24.01.2020
  33. ^ "2.3.3.2 META_CHORD Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 117–118 , получено 24.01.2020
  34. ^ "2.3.3.3 META_ELLIPSE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119 , получено 24.01.2020
  35. ^ "2.3.3.4 META_EXTFLOODFILL Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119–120 , получено 24.01.2020
  36. ^ "2.3.3.5 META_EXTTEXTOUT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119–120 , получено 24.01.2020
  37. ^ "2.3.3.6 META_FILLREGION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 121 , получено 24.01.2020
  38. ^ "2.3.3.7 META_FLOODFILL Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119–120 , получено 24.01.2020
  39. ^ "2.3.3.8 META_FRAMEREGION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 122–123 , получено 24.01.2020
  40. ^ "2.3.3.9 META_INVERTREGION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 123 , получено 24.01.2020
  41. ^ "2.3.3.10 META_LINETO Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 123–124 , получено 24.01.2020
  42. ^ "2.3.3.11 META_PAINTREGION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 124 , получено 24.01.2020
  43. ^ "2.3.3.12 META_PATBLT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 124–125 , получено 24.01.2020
  44. ^ "2.3.3.13 META_PIE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 125–126 , получено 24.01.2020
  45. ^ "2.3.3.14 META_POLYLINE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 126 , получено 24.01.2020
  46. ^ "2.3.3.15 META_POLYGON Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 127 , получено 24.01.2020
  47. ^ "2.3.3.16 META_POLYPOLYGON Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 127–128 , получено 24.01.2020
  48. ^ "2.3.3.17 META_RECTANGLE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 127–128 , получено 24.01.2020
  49. ^ "2.3.3.18 META_ROUNDRECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 128–129 , получено 24.01.2020
  50. ^ "2.3.3.19 META_SETPIXEL Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 129–130 , получено 24.01.2020
  51. ^ "2.3.3.20 META_TEXTOUT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 130 , получено 24.01.2020
  52. ^ "2.2.2.2. BitmapCoreHeader Object", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 85 , получено 25.01.2020
  53. ^ "2.2.2.9. DeviceIndependentBitmap Object", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 91 , получено 25.01.2020
  54. ^ ab "2.2.1. Графические объекты", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 79 , получено 25.01.2020
  55. ^ "2.3.4.1 META_CREATEBRUSHINDIRECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 131–132 , получено 25.01.2020
  56. ^ "2.3.4.2 META_CREATEFONTINDIRECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 132 , получено 25.01.2020
  57. ^ "2.3.4.4 META_CREATEPATTERNBRUSH Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 133–135 , получено 25.01.2020
  58. ^ "2.3.4.3 META_CREATEPALETTE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 132–133 , получено 25.01.2020
  59. ^ "2.3.4.5 META_CREATEPENINDIRECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 134–135 , получено 25.01.2020
  60. ^ "2.3.4.6 META_CREATEREGION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 135 , получено 25.01.2020
  61. ^ "2.3.4.7 META_DELETEOBJECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 135 , получено 25.01.2020
  62. ^ "2.3.4.8 META_CREATEBRUSHINDIRECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 135–136 , получено 25.01.2020
  63. ^ "2.3.4.9 META_DIBCREATEPATTERNBRUSH Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 136–137 , получено 25.01.2020
  64. ^ "2.3.4.10 META_SELECTCLIPREGION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 137 , получено 25.01.2020
  65. ^ "2.3.4.11 META_SELECTOBJECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 137–138 , получено 25.01.2020
  66. ^ "2.3.4.11 META_SELECTPALETTE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 139 , получено 25.01.2020
  67. ^ "2.3.5 State Record Types", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 138 , получено 28.01.2020
  68. ^ "2.3.5.1 META_ANIMATEPALETTE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 140 , получено 28.01.2020
  69. ^ "2.3.5.2 META_EXCLUDECLIPRECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 140–141 , получено 28.01.2020
  70. ^ "2.3.5.3 META_INTERSECTCLIPRECT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 141–142 , получено 28.01.2020
  71. ^ "2.3.5.1 META_MOVETO Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 142 , получено 28.01.2020
  72. ^ "2.3.5.4 META_OFFSETCLIPRGN Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 142–143 , получено 28.01.2020
  73. ^ "2.3.5.5 META_OFFSETVIEWPORTORG Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 143 , получено 28.01.2020
  74. ^ "2.3.5.6 META_OFFSETWINDOWORG Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 131–132 , получено 28.01.2020
  75. ^ "2.3.5.7 META_REALIZEPALETTE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 143–144 , получено 28.01.2020
  76. ^ "2.3.5.8 META_RESIZEPALETTE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 144 , получено 28.01.2020
  77. ^ "2.3.5.9 META_RESTOREDC Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 145 , получено 28.01.2020
  78. ^ "2.3.5.10 META_SAVEDC Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 145 , получено 28.01.2020
  79. ^ "2.3.5.11 META_SCALEVIEWPORTEXT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 145–146 , получено 28.01.2020
  80. ^ "2.3.5.12 META_SCALEWINDOWEXT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 146–147 , получено 28.01.2020
  81. ^ "2.3.5.13 META_SETBKCOLOR Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 147 , получено 28.01.2020
  82. ^ "2.3.5.14 META_SETBKMODE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 147–148 , получено 28.01.2020
  83. ^ "2.3.5.15 META_SETLAYOUT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 148 , получено 28.01.2020
  84. ^ "2.3.5.16 META_SETMAPMODE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 148–149 , получено 28.01.2020
  85. ^ "2.3.5.17 META_SETMAPPERFLAGS Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 131–132 , получено 28.01.2020
  86. ^ "2.3.5.18 META_ANIMATEPALETTE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 149 , получено 28.01.2020
  87. ^ "2.3.5.19 META_SETPALENTRIES Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 149–150 , получено 28.01.2020
  88. ^ "2.3.5.20 META_SETRELABS Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 150 , получено 28.01.2020
  89. ^ "2.3.5.21 META_SETROP2 Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 151 , получено 28.01.2020
  90. ^ «2.3.5.1 META_SETSTRETCHBLTMODE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 151–152 , получено 28.01.2020
  91. ^ "2.3.5.22 META_SETTEXTALIGN Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 152 , получено 28.01.2020
  92. ^ "2.3.5.1 META_SETTEXTCHAREXTRA Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 152–153 , получено 28.01.2020
  93. ^ "2.3.5.23 META_SETTEXTCOLOR Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 153 , получено 28.01.2020
  94. ^ "2.3.5.24 META_SETTEXTJUSTIFICATION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 153–154 , получено 28.01.2020
  95. ^ "2.3.5.25 META_SETVIEWPORTEXT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 154 , получено 28.01.2020
  96. ^ "2.3.5.26 META_SETVIEWPORTORG Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 154–155 , получено 28.01.2020
  97. ^ "2.3.5.27 META_SETWINDOWEXT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 155 , получено 28.01.2020
  98. ^ "2.3.5.28 META_SETWINDOWORG Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 155 , получено 28.01.2020
  99. ^ "2.3.6.2. ABORTDOC Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 158–159 , получено 28.01.2020
  100. ^ "2.3.6.3. BEGIN_PATH Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 159 , получено 28.01.2020
  101. ^ "2.3.6.4. CHECK_JPEGFORMAT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 159–160 , получено 28.01.2020
  102. ^ "2.3.6.5. CHECK_PNGFORMAT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 160 , получено 28.01.2020
  103. ^ "2.3.6.6. CLIP_TO_PATH Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 160 , получено 28.01.2020
  104. ^ "2.3.6.7. CLOSE_CHANNEL Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 162 , получено 28.01.2020
  105. ^ "2.3.6.8. DOWNLOAD_FACE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 162–163 , получено 28.01.2020
  106. ^ "2.3.6.9. DOWNLOAD_HEADER Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 158–159 , получено 28.01.2020
  107. ^ "2.3.6.10. DRAW_PATTERNRECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 163–164 , получено 28.01.2020
  108. ^ "2.3.6.11. ENCAPSULATED_POSTSCRIPT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 164 , получено 28.01.2020
  109. ^ "2.3.6.12. END_PATH Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 164–165 , получено 28.01.2020
  110. ^ "2.3.6.13. Запись ENDDOC", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 165 , получено 28.01.2020
  111. ^ "2.3.6.14. EPS_PRINTING Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 165–166 , получено 28.01.2020
  112. ^ "2.3.6.15. EXTTEXTOUT Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 166–167 , получено 28.01.2020
  113. ^ "2.3.6.16. GET_COLORTABLE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 167–168 , получено 28.01.2020
  114. ^ "2.3.6.17. GET_DEVICEUNITS Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 168 , получено 28.01.2020
  115. ^ "2.3.6.18. GET_EXTENDED_TEXTMETRICS Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 168–169 , получено 28.01.2020
  116. ^ "2.3.6.19. GET_FACENAME Record", [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 169 , получено 28.01.2020
  117. ^ "2.3.6.20. GET_PAIRKERNTABLE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 169–170 , получено 28.01.2020
  118. ^ "2.3.6.21. GET_PHYSPAGESIZE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 170 , получено 28.01.2020
  119. ^ "2.3.6.22. GET_PRINTINGOFFSET Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 170–171 , получено 28.01.2020
  120. ^ "2.3.6.23. GET_PS_FEATURESETTING Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 171 , получено 28.01.2020
  121. ^ "2.3.6.24. GET_SCALINGFACTOR Record", [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 171–172 , получено 28.01.2020
  122. ^ "2.3.6.25. META_ESCAPE_ENHANCED_METAFILE Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 172–173 , получено 28.01.2020
  123. ^ "2.3.6.26. METAFILE_DRIVER Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 173–174 , получено 28.01.2020
  124. ^ "2.3.6.27. NEWFRAME Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 174–175 , получено 28.01.2020
  125. ^ "2.3.6.28. Запись NEXTBAND", [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 174–175 , получено 28.01.2020
  126. ^ "2.3.6.29. PASSTHROUGH Record", [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 175 , получено 28.01.2020
  127. ^ "2.3.6.30. Запись POSTSCRIPT_DATA", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 176 , получено 28.01.2020
  128. ^ "2.3.6.31. Запись POSTSCRIPT_IDENTIFY", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 176–177 , получено 28.01.2020
  129. ^ "2.3.6.32. Запись POSTSCRIPT_IGNORE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 177 , получено 28.01.2020
  130. ^ "2.3.6.33. POSTSCRIPT_INJECTION Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 177–178 , получено 28.01.2020
  131. ^ "2.3.6.34. Запись POSTSCRIPT_PASSTHROUGH", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 178 , получено 28.01.2020
  132. ^ "2.3.6.35. OPEN_CHANNEL Record", [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 179 , получено 28.01.2020
  133. ^ "2.3.6.36. QUERY_DIBSUPPORT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 179–180 , получено 28.01.2020
  134. ^ "2.3.6.37. QUERY_ESCSUPPORT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 180 , получено 28.01.2020
  135. ^ "2.3.6.38. SET_COLORTABLE Record", [MS-WMF]: Windows Metafile Format Specification (PDF) , стр. 180–181 , получено 28.01.2020
  136. ^ "2.3.6.39. SET_COPYCOUNT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 181 , получено 28.01.2020
  137. ^ "2.3.6.40. Запись SET_LINECAP", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 181–182 , получено 28.01.2020
  138. ^ "2.3.6.41. SET_LINEJOIN Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 182–183 , получено 28.01.2020
  139. ^ "2.3.6.42. SET_MITERLIMIT Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 183 , получено 28.01.2020
  140. ^ "2.3.6.43. SPCLPASSTHROUGH2 Record", [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 183–184 , получено 28.01.2020
  141. ^ "2.3.6.44. STARTDOC Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 184 , получено 28.01.2020
  142. ^ "Microsoft Windows WMF "SETABORTPROC" Произвольное выполнение кода". Secunia . Secunia Advisory: SA18255. Архивировано из оригинала 2 января 2006 г.
  143. ^ Поддерживаемые Pscript экранирования, Microsoft , получено 28.01.2020
  144. ^ "The Windows MetaFile Backdoor?". GRC Security Now! (Подкаст). Gibson Research Corporation . 12 января 2006 г. Получено 28 января 2020 г.
  145. Гибсон, Стив (12 января 2006 г.), «Re: Вы не захотите пропустить сегодняшнюю передачу Security Now!, № 22», grc.news.feedback , получено 28.01.2020 г.
  146. Руссинович, Марк (18 января 2006 г.), «Внутри бэкдора WMF», TechNet , Microsoft – через Microsoft Tech Community
  147. Ферри, Питер (2 февраля 2006 г.), Inside the Windows Meta File Format (PDF) , Virus Bulletin , заархивировано из оригинала (PDF) 16 мая 2008 г. , извлечено 24 января 2020 г. – через Symantec
  148. ^ "1.3.1. Структура метафайла", [MS-EMF]: Расширенный формат метафайла (PDF) , Microsoft, стр. 17–18
  149. ^ "2.3.4.2.1 EmfMetafileHeader Record", [MS-EMF]: Enhanced Metafile Format (PDF) , Microsoft, стр. 120
  150. ^ "2.2.10 HeaderExtension1 Object", [MS-EMF]: Enhanced Metafile Format (PDF) , Microsoft, стр. 57–58
  151. ^ "2.2.22 PixelFormatDescriptor Object", [MS-EMF]: Enhanced Metafile Format (PDF) , Microsoft, стр. 68–71
  152. ^ "2.3.4.2.3 EmfMetafileHeaderExtension2 Record", [MS-EMF]: Расширенный формат метафайла (PDF) , Microsoft, стр. 122–124
  153. ^ "Вы получаете сообщение об ошибке "Этот файл имеет неподдерживаемый графический формат" при попытке вставить изображение в презентацию PowerPoint для Mac". Microsoft . Архивировано из оригинала 2014-04-19 . Получено 2014-04-19 .

Внешние ссылки