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