Word document file formats

From Wikipedia, the free encyclopedia

The following is a list of filename extensions used by programs in the Microsoft Office suite.

Word[edit]

Legacy
Legacy filename extensions denote binary Microsoft Word formatting that became outdated with the release of Microsoft Office 2007. Although the latest version of Microsoft Word can still open them, they are no longer developed. Legacy filename extensions include:
  • .doc – Legacy Word document; Microsoft Office refers to them as «Microsoft Word 97 – 2003 Document»
  • .dot – Legacy Word templates; officially designated «Microsoft Word 97 – 2003 Template»
  • .wbk – Legacy Word document backup; referred as «Microsoft Word Backup Document»
OOXML
Office Open XML (OOXML) format was introduced with Microsoft Office 2007 and became the default format of Microsoft Word ever since. Pertaining file extensions include:
  • .docx – Word document
  • .docm – Word macro-enabled document; same as docx, but may contain macros and scripts
  • .dotx – Word template
  • .dotm – Word macro-enabled template; same as dotx, but may contain macros and scripts
  • .docb – Word binary document introduced in Microsoft Office 2007
  • .pdf – PDF documents
  • .wll – Word add-in
  • .wwl – Word add-in

Excel[edit]

Legacy
Legacy filename extensions denote binary Microsoft Excel formats that became outdated with the release of Microsoft Office 2007. Although the latest version of Microsoft Excel can still open them, they are no longer developed. Legacy filename extensions include:
  • .xls – Legacy Excel worksheets; officially designated «Microsoft Excel 97-2003 Worksheet»
  • .xlt – Legacy Excel templates; officially designated «Microsoft Excel 97-2003 Template»
  • .xlm – Legacy Excel macro
  • .xll_ – Excel 4 for Mac add-in
  • .xla_ — Excel 4 for Mac add-in
  • .xla5 – Excel 5 for Mac add-in
  • .xla8 – Excel 98 for Mac add-in
OOXML
Office Open XML (OOXML) format was introduced with Microsoft Office 2007 and became the default format of Microsoft Excel ever since. Excel-related file extensions of this format include:
  • .xlsx – Excel workbook
  • .xlsm – Excel macro-enabled workbook; same as xlsx but may contain macros and scripts
  • .xltx – Excel template
  • .xltm – Excel macro-enabled template; same as xltx but may contain macros and scripts
Other formats
Microsoft Excel uses dedicated file formats that are not part of OOXML, and use the following extensions:
  • .xlsb – Excel binary worksheet (BIFF12)
  • .xla – Excel add-in that can contain macros
  • .xlam – Excel macro-enabled add-in
  • .xll – Excel XLL add-in; a form of DLL-based add-in[1]
  • .xlw – Excel work space; previously known as «workbook»

PowerPoint[edit]

Legacy

  • .ppt – Legacy PowerPoint presentation
  • .pot – Legacy PowerPoint template
  • .pps – Legacy PowerPoint slideshow
  • .ppa – PowerPoint (2007?) add-in
  • .ppam – PowerPoint 2007 add-in with macros enabled

OOXML

  • .pptx – PowerPoint presentation
  • .pptm – PowerPoint macro-enabled presentation
  • .potx – PowerPoint template
  • .potm – PowerPoint macro-enabled template
  • .ppam – PowerPoint add-in
  • .ppsx – PowerPoint slideshow
  • .ppsm – PowerPoint macro-enabled slideshow
  • .sldx – PowerPoint slide
  • .sldm – PowerPoint macro-enabled slide
  • .pa – PowerPoint add-in

Access[edit]

Microsoft Access 2007 introduced new file extensions:

  • .ACCDA – Access add-in file
  • .ACCDB – The file extension for the new Office Access 2007 file format. This takes the place of the MDB file extension.
  • .ACCDE – The file extension for Office Access 2007 files that are in «execute only» mode. ACCDE files have all Visual Basic for Applications (VBA) source code hidden. A user of an ACCDE file can only execute VBA code, but not view or modify it. ACCDE takes the place of the MDE file extension.
  • .ACCDT – The file extension for Access Database Templates.
  • .ACCDR – is a new file extension that enables you to open a database in runtime mode. By simply changing a database’s file extension from .accdb to .accdr, you can create a «locked-down» version of your Office Access database. You can change the file extension back to .accdb to restore full functionality.
  • .ACCDU – Access add-in file
  • .MDA – Access add-in file
  • .MDE – Access add-in file

OneNote[edit]

  • .one – OneNote export file

Outlook[edit]

  • .ecf – Outlook 2013+ add-in file

Billing[2][edit]

Publisher[edit]

  • .pub – a Microsoft Publisher publication

XPS Document

  • .xps – a XML-based document format used for printing (on Windows Vista and later) and preserving documents.

See also[edit]

  • Microsoft Office
  • Microsoft Office XML formats
  • Filename extension
  • Alphabetical list of file extensions
  • Office Open XML

External links[edit]

  • Introducing the Microsoft Office (2007) Open XML File Formats
  • Introduction to new file-name extensions

References[edit]

  1. ^ «Excel 2007 XLL Software Development Kit Documentation». MSDN. Microsoft. Retrieved 4 June 2013.
  2. ^ Stross, Randall (2014). Planet google : one company’s audacious plan to organize everything we know. Free Press. ISBN 978-1-4165-8047-8. OCLC 893105047.

__NO

Common file name extensions in Windows

Extension Format
docx Microsoft Word document
dot Microsoft Word template before Word 2007
dotx Microsoft Word template
eml Email file created by Outlook Express, Windows Live Mail, and other programs

Contents

  • 1 What is the default file extension for all Word documents?
  • 2 What is the file extension for Word 2010?
  • 3 Which of the following extension is used for saving a file?
  • 4 What is the file extension of Word 2013?
  • 5 What is the file extension for Microsoft Word 2016?
  • 6 What is the default file extension of MS Word 2013?
  • 7 What is file extension and examples?
  • 8 What are the 5 file extensions?
  • 9 How do I add an extension to a file?
  • 10 What is the file extension of MS Excel 2010?
  • 11 What is the file extension of MS Excel 2007?
  • 12 What are Microsoft extensions?
  • 13 How do I open an XLA file in Office 365?
  • 14 What does a file extension look like?
  • 15 How do I get the file extension?
  • 16 What is your extension meaning?
  • 17 What is the extension of basic file?
  • 18 What is a 20 file?
  • 19 What are the 4 types of files?
  • 20 How do I make file extensions in Windows 10?

What is the default file extension for all Word documents?

The default file extension for all Word documents is ‘. docx‘.

The default file format for Word 2010 is Office Open XML (DOCX).

Which of the following extension is used for saving a file?

A Word Document, or DOC, file is the extension that Word would save its documents. Starting in Word 2007, the . docx file format became the standard file that Microsoft Word would save files as.

What is the file extension of Word 2013?

File formats that are supported in Word

Extension Name of file format
.docx Word Document
.docx Strict Open XML Document
.dot Word 97-2003 Template
.dotm Word Macro-Enabled Template

What is the file extension for Microsoft Word 2016?

docx
docx has been the default file type for Microsoft Word since the 2007 version, i.e. in Word 2007, Word 2010, Word 2013 and Word 2016.

What is the default file extension of MS Word 2013?

DOCX
The latest version of MS Word which is MS Word 2013 by default saves the documents in DOCX as well. One of the biggest advantages of DOCX file format is that it supports some additional formatting which is not possible when legacy file extension is used to save the documents.

What is file extension and examples?

A file extension (or simply “extension”) is the suffix at the end of a filename that indicates what type of file it is. For example, in the filename “myreport.It indicates the file is a text document. Some other examples include . DOCX, which is used for Microsoft Word documents, and .

What are the 5 file extensions?

In summary, the most common document file extensions are:

  • DOC and DOCX.
  • HTML and . HTM.
  • ODT.
  • PDF.
  • XLS and XLSX.
  • ODS.
  • PPT and . PPTX.
  • TXT.

How do I add an extension to a file?

How to change a file extension

  1. Click the file to select it, then click once more. Windows automatically selects the filename so that anything you type will replace the existing name.
  2. Click and drag over the extension, type the new extension and press Enter.

What is the file extension of MS Excel 2010?

File formats that use the Clipboard

Format Extension Clipboard type identifiers
Microsoft Excel file formats .xls Binary file formats for Excel versions 5.0/95 (BIFF5), Excel 97-2003 (BIFF8), and Excel 2010 (BIFF12).
SYLK .slk Symbolic Link Format.
DIF .dif Data Interchange Format.
Text (tab-delimited) .txt Tab-separated text format.

What is the file extension of MS Excel 2007?

xlsx
Office Excel 2007 supports the use of a new XML-based file format that Microsoft officially calls the Microsoft Office Open XML format. This new file format carries the filename extension . xlsx for Excel workbooks and . xlsm for macro-enabled workbooks.

What are Microsoft extensions?

Microsoft Edge extensions are small software programs that integrate with Edge to make surfing the internet easier, safer, and more productive. Here’s a look at finding and installing Edge extensions to personalize and enhance your web browsing experience.

How do I open an XLA file in Office 365?

How do I open an XLA file?

  1. Select File → Options → Add-Ins.
  2. In the Manage window, select Excel Add-ins → Go.
  3. In the Add-Ins window, select Browse.
  4. Find and select your XLA file. Then, click OK.

What does a file extension look like?

A file name extension is often between one and three characters and is always at the end of the file name, starting with a period.html file extension. Note. In all new versions of Microsoft Windows, by default, the file extensions are hidden, and you must have show file extensions enabled.

How do I get the file extension?

Open File Explorer; if you do not have an icon for this in the task bar; click Start, click Windows System, and then File Explorer. Click the View tab in File Explorer. Click the box next to File name extensions to see file extensions.

What is your extension meaning?

1 : the act of making something longer or greater extension of the sail. 2 : an increase in length or time. 3 : a part forming an addition or enlargement.

What is the extension of basic file?

For example, the doc extension tells your computer that the file is a Microsoft Word file.
Common Windows file extensions.

File Extension File Type
.AU Basic Audio
.AVI Multimedia Audio/Video
.BAT PC batch file
.BMP Windows BitMap

What is a 20 file?

What is 20 file? 20 filename suffix is mostly used for Salt Lake City Game Music files. Salt Lake City Game Music specification was created by Ubisoft Entertainment S.A.. 20 files are supported by software applications available for devices running Windows. Files with 20 extension are categorized as Game Files files.

What are the 4 types of files?

The four common types of files are document, worksheet, database and presentation files. Connectivity is the capability of microcomputer to share information with other computers. Wireless communication using mobile devices is the beginning of wireless revolution.

How do I make file extensions in Windows 10?

Add New File Types to Windows 10 Context Menu

  1. The Context Menu. The Context Menu in Windows 10 represents the best way to create a new file quickly and easily.
  2. Create New Files in the Context Menu.
  3. Add New Files to the Context Menu.
  4. Steps to Add File Types You Want.
  5. Create Files and Save Time.
Microsoft Word
Image by Quinn Dombrowski http://bit.ly/1voIkjv

In an earlier blog entry, we have talked about the file formats Microsoft Office programs can open. Included were Microsoft PowerPoint, Excel, Notepad, WordPad and of course the word processing flagship Microsoft Word.

Knowing what files you can open with few or no struggle at all in Word is useful, no question, but what about saving documents in Microsoft Word? There is a big list of file formats you can export or save your writing in. In this article, we plan to reveal them all.

Please note that these information represent the current standard as of Microsoft Office 365. They may not be accountable for earlier or newer versions of Microsoft Word.

The first formats to have a look at are the default and standard document files provided by Microsoft Word. They can be regarded as Word’s “native” files. While some of these files differ due to the version of Microsoft Word you have, others serve different purposes.

DOC & DOCX

DOC files have been the standard document files to save your writing in Microsoft Word for a long time. It is compatible with versions of Microsoft Word from Word 97 up to Word 2003 for Windows.

DOCX is the XML-based format that is standard for versions Microsoft Word 2007 and newer.

Read more about the difference between DOC and DOCX.

DOT & DOTX

DOT and DOTX differ from the aforementioned document files in one crucial instance: they are template files. Documents saved as DOT or DOTX save content as well as layout and page settings, styles, shortcuts, and more, thus making it easier to start a new document with the exact same set-up.

DOT files are compatible with versions of Microsoft Word 97 up to Word 2003.

DOTX files, similar to DOCX, are based on XML. Those templates can be saved with Microsoft Word 2007 and newer.

DOCM & DOTM

Both DOCM and DOTM are similar to DOCX and DOTX respectively. They are both XML-based. However, saving in these formats preserves VBA macro code in either the document or document template.

These macros are only able to run in Word 2011, thus making this the version of Microsoft Word that allows you to save your writing as either DOCM or DOTM.

Other Text Formats

Other than Microsoft native document formats, you can save your writing in universally supported and common text formats as well. Those are the following:

TXT

TXT files are the “most basic” text files you can create. Text is saved in a plain format without any formatting or styles. This file type can be opened in all common text editors like NotePad.

Read more about why you may want to create a TXT file.

RTF

RTF files are similar to both DOC and TXT files. Text is saved with basic formatting however, setting it apart from the plain text version TXT. However, the formatting preserved in RTF files are not as advanced as those in DOC and DOCX.

Many other word processing programs are able to open RTF files.

PDF

PDF files are special in that they can not be further edited in common word processing software as Microsoft Word. Text saved as PDF, however, look exactly the same in every program they are opened with as they contain a fixed page layout. This format is especially useful when transferring writing from, e.g., Windows to Apple Mac computers or for printing.

Webpages

Another possibility for saving text in Microsoft Word is to save it as an executable webpage. There are two formats available for this.

HTM

HTM files save the contained text in the HTML format. Thus, the files can be executed in a web browser. Like PDF files, they look exactly the same on Windows and Apple computers.

Read more about reasons why you may want to save your documents as HTM(L).

MHT

When saving a document in the MHT format, it is optimized for display on the web as well. All page elements like images, tables and other graphics are included in one MHT file. The files use the MIME HTML Internet standard.

Markup Languages

Next to webpages, Microsoft Word is also able to save text in the markup language XML.

XML

XML files contain text translated into XML markup language. All formatting of the text is translated as well.

There are two versions of the XML file available for saving in Microsoft Word; one is compatible with Word 2003, one for Windows 2007.

Other

Next to these (more or less) document types available for saving, Microsoft Word is also capable of exporting writing in different file formats.

DIC

There are two versions of DIC files available. They are both linked to dictionary entries that are not contained or specified in the main dictionary of Microsoft Word.

One version of DIC files stores information about new words or terms that are not saved in the main dictionary.

The other version specifies the preferred spelling of words and terms. Saving them in this type of DIC will prevent Microsoft Word from marking correctly spelled words as incorrect. This is especially useful when it comes to the distinction between British and American English.

THMX

THMX files contain information about used fonts, color schemes, background settings and other formatting that belongs to a Microsoft Word page theme. In Word, you can choose between different themes under Home > Themes > Browse Themes. Thus, you can apply them to any page you are working on.

Форматы документов Microsoft Word — от старого DOC до нового DOCX

Документ Microsoft Word представляет собой файл с расширением doc или docx. До 90-х годов XX века расширение doc использовалось для текстовых файлов, которые не содержат разметки. И сейчас можно убедиться, что файл такого типа легко создать с помощью, например, программы «Блокнот». Правда, он не будет иметь богатого форматирования, но легко открывается программой Ворд, в которой набранному в блокноте тексту можно придать более оформленный вид. Когда корпорация Майкрософт выпустила программу Ворд, разработчики решили использовать в ней расширение doc. К настоящему времени этот текстовый редактор является самым популярным в мире, поэтому файл с расширением doc ассоциируют с этим программным продуктом и называют просто «вордовский формат».

Что такое формат?

Старый формат DOC отличался сложным содержанием, и нормально читался только в MS Office

Старый формат DOC отличался сложным содержанием, и нормально читался только в MS Office

В отличие от других текстовых форматов этого же производителя, например, RTF (Rich Text Format File), внутреннее содержание doc более сложное и запутанное. В формате Word сохраняется не только символьная информация, но и различные объекты (например, схемы, диаграммы, формулы, сценарии). Разработчики используют закрытый код, в котором посторонний разобраться не сможет. Чтобы увидеть «внутренности», файл можно открыть, например, в блокноте. В RTF любопытствующий увидит стройные ряды данных, похожие на содержание кода интернет-страниц. Во втором случае — пугающую кашу из знаков самого разнообразного происхождения и вида. В отличие от зашифрованного документа Word, файл RTF не содержит непечатных бинарных символов, легко открывается во всех текстовых и даже графических редакторах. В то же время практически ни одна программа (кроме соответствующего продукта от компании Майкрософт) не обладает способностью адекватно открыть для просмотра и редактирования документ Word. Сейчас офисный пакет этой компании очень широко распространен и доступен любому пользователю.

Современные форматы «вордовских» документов

Даже бесплатные современные редакторы документов умеют корректно работать с DOCX

Даже бесплатные современные редакторы документов умеют корректно работать с DOCX

Кроме того, сложности могут возникнуть даже при использовании разных версий офисного пакета Майкрософт. Дело в том, что начиная с версии Word 2007 года документ по умолчанию сохраняется с расширением не doc, а docx. Поэтому если установлен пакет офиса, выпущенный ранее, то необходима конвертация для устаревших версий. Конверторы для обеспечения совместимости предлагаются самой компанией Майкрософт (Microsoft Office Compatibility Pack), так что обычно при открытии docx, например, в версии Ворд 2003, сложностей не возникает, но при этом может потеряться часть данных форматирования и возможностей редактирования.

Компания Майкрософт была вынуждена пойти на изменение формата Word под давлением международных организаций, которые требовали подвести его под какие-либо стандарты. Был выбран вариант, основанный на языке разметки XML, который часто используется в документах интернет. Документ с расширением docx имеет некоторые преимущества перед устаревшим форматом, в частности, меньший вес, что имеет значение при передаче документа через интернет. Поэтому при ограниченных скоростях передачи данных пользователям имеет смысл использовать более современный формат Word.

Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:

Читайте также

Оставить комментарий ВКонтакте

Время на прочтение
14 мин

Количество просмотров 13K

Всем привет!
Этой статьей мы открываем цикл, посвященный исследованию безопасности компонентов Microsoft Office. Речь в материале пойдет о форматах данных, шифровании и получении символов.
Когда в компании Microsoft задумывался и разрабатывался масштабный пакет офисных программ Microsoft Office, вероятно, создатели надеялись на успех. Сложно сказать, могли ли они рассчитывать на его триумфальное шествие по миру впоследствии, на то, что продукт станет фактическим стандартом, а существование его растянется на десятилетия. Однако можно уверенно утверждать, что массивность приложений, количество человеко-часов, затраченных на создание, развитие, поддержку обратной совместимости компонентов продукта способствовали появлению «тяжелого наследия» в виде устаревшего, написанного десятилетия назад программного кода, составляющего ядро приложений даже в последних версиях пакета. Требования, которые предъявлялись к коду двадцать лет назад, изменились. Сегодня во главу угла ставится кроссплатформенность, масштабируемость и безопасность. При этом, расходы на значительные изменения в продукте таковы, что Microsoft предпочитает подход «не сломано – не трогай», и старательно обеспечивает обратную совместимость с самыми древними форматами документов. Не обходится и без определенного давления со стороны коммерческих и государственных структур, которые также медленно и неохотно обновляют свои технологические парки, предпочитая привычные средства в ущерб развитию и безопасности.

Покопавшись в дебрях обработчиков файлов Microsoft Office, мы готовы представить вам это небольшое исследование.

Component Object Model и хранение данных

Начать стоит издалека, а именно с Объектной Модели Компонентов. Как вы, должно быть, знаете, Microsoft обожает делать свои продукты на основе этой технологии, и Microsoft Office не стал исключением.
Объектная модель компонентов COM — это стандарт, позволяющий ПО пользоваться сервисами, предоставляемыми другим ПО, независимо от того, где это ПО расположено (внутри одного процесса, в разных процессах или на разных компьютерах) и чем представлено (исполняемые файлы, управляемый код, или даже скриптовые языки). При этом программе-клиенту, называемой контейнером, не нужно вдаваться в подробности реализации сервиса (или компонента), достаточно знать его идентификатор класса, и, если такой зарегистрирован, хитроумная система маршалинга обеспечит прозрачное, бесшовное и довольно надежное взаимойдействие.


Так может выглядеть использование приложением-контейнером разнородных компонетов независимо от их местоположения

На практике обычно подразумевается не столько сам стандарт, сколько его реализация в ОС семейства Windows. Первые версии COM были разработаны еще для 16-разрядных Windows в качестве основания для OLE (оно же теперь ActiveX). Изначальной целью разработки этих подсистем была возможность создания (!) составных документов Word и Excel для Windows 3.x, и они были выпущено на свет около 1991 года (в разных источниках даты расходятся).

Представим приложение на C#, которое использует несколько элементов ActiveX (элементы ActiveX являются COM-компонентами, предназначенными для взаимодействия с пользователем; определение неточное, но точного, судя по всему, не существует). Приложение-контейнер загружает внутрипроцессный компонент, написанный на плоском C для отрисовки изображения, компонент внутри другого процесса на этом же компьютере для загрузки веб-страницы и форму ввода строковых данных, которую отрисовывает компонент, выпоняющийся на другом компьютере.

Работая с приложением, пользователь изменяет изображение, содержимое окна браузера и строки в полях ввода. Само приложение взаимодействует с компонентами, вызывая их методы и устанавливая их свойства, иными словами, изменяя внутреннее состояние объектов, о внутреннем устройстве которых не имеет представления.

В один прекрасный момент пользователь решает сохранить проделанную работу и нажимает кнопку «Save». Перед нашим приложением стоит грандиозная задача — записать на диск набор данных в совершенно разных форматах, о большей части которых (и данных, и форматов) приложению ничего не известно, да и находятся они для него в недосягаемости! Именно для решения этой задачи специалисты Microsoft и разработали одновременно с COM и «родной» для Component Object Model формат файла Compound File Binary Format, а вместе с ним систему интерфейсов для взаимодействия с этим форматом и их реализаций, объединяемых под именем Structured Storage.

Структурированное Хранилище COM

Для универсального доступа приложений и компонентов к сложному, к тому же закрытому, формату CFBF, для прозрачной как для контейнера, так и для компонентов замены одного формата другим, были разработаны библиотечные интерфейсы IStorage и IStream и соответствующие API. Виртуальная структура данных, к которой получает доступ приложение посредством этих интерфейсов, представлена системой вложенных каталогов – Хранилищ (Storages), каждый из которых может содержать некоторое число последовательностей байтов – Потоков (Streams), в которых и хранятся данные.


Виртуальное представление формата CFBF (StructuredStorage)

Информация в потоках может храниться в любом удобном виде, включая текст, изображение в любом формате, зашифрованные или сжатые данные, или даже другие файлы CFBF. Не составляет труда поместить в поток и исполняемый код (в т.ч. вредоносный).
Используя соответствующие API (см. Structured Storage Reference в MSDN), приложение может создать файл-хранилище и предоставить каждому компоненту хранилище второго (третьего и т.д.) уровня или поток (несколько потоков) для сохранения состояния в любом формате. Контейнеру нет необходимости знать, в каком виде компонент запишет свои данные, а о размещении информации в файле позаботится стандартная библиотека. Когда необходимо загрузить сохраненное состояние, контейнер открывает хранилище и предоставляет загруженным компонентам возможность считать потоки по мере надобности.

Создание технологии Структурированного Хранилища преследовало следующие задачи:

  • исключение необходимости для приложений сохранять многочисленные отдельные файлы для разных типов данных, в том числе, для экономии места на диске
  • создание унифицированного интерфейса для работы с данными, облегчающего создание приложений, и, в особенности, COM-компонентов, работающих с составными документами
  • возможность сохранять текущее состояние элемента данных в любой момент времени
  • ускорение доступа к данным

Последний пункт требует отдельного рассмотрения. Разработка Структурированного Хранилища велась на заре развития COM (начало 90х годов), когда существующие аппаратные ресурсы предъявляли повышенные требования к быстродействию сложных систем, в том числе при чтении и записи дисковых файлов. Поэтому система хранения данных должна была быть максимально оптимизирована для быстродействия. Это исключало использование, к примеру, текстовых форматов, требующих значительной предварительной обработки. Напротив, двоичные форматы, позволяющие копировать данные в память с минимальными модификациями, имели преимущество.

Результатом стала дисковая реализация Структурированного Хранилища – формат составных двоичных файлов Microsoft (Compound File Binary Format). Долгое время формат оставался закрытым, спецификации были опубликованы производителем в 2006 году.

Формат CFBF представляет собой «файловую систему внутри файла» и имеет таблицу размещения файлов (FAT), таблицу секторов, директории и «потоки» — аналог дисковых файлов.


Техническое представление формата CFBF

Существует несколько версий формата CFBF, все они должны поддерживаться последними версиями ОС в рамках обратной совместимости. Несмотря на то, что Структурированные Хранилища являются во многом «унаследованной» и морально устаревшей технологией, они представляют естественную встроенную систему хранения данных COM, а технология COM насквозь пронизывает «пользовательскую» часть ОС Windows. Значительный объем прикладных программ, в том числе Microsoft Office и многие встроенные приложения Windows, разрабатывались достаточно давно и содержат большой объем кода, требующего обратной совместимости, что затрудняет переход на современные универсальные открытые форматы. Как следствие, технология занимает прочное место и активно используется в современных версиях продуктов Microsoft.
В качестве примеров можно привести:

  • Ярлыки и списки быстрого доступа
  • Кэш изображений и результатов поиска
  • Файлы установки (msi и msp)
  • «Заметки» Windows

Формат Compound Binary File в приложениях пакета Microsoft Office

Формат документов, используемый Microsoft Office, изначально также представлял собой CFBF.


Документ Word, открытый утилитой для просмотра Structured Storage

Современные версии пакета в качестве основного используют открытый, основанный на XML, формат OfficeOpen XML, однако поддержка CFBF не прекращается с целью поддержания совместимости. Необходимо заметить, что значительная масса кода, отвечающего за работу со старыми форматами документов, была разработана давно (около 20 лет назад).

Word .doc Legacy Word document;
Microsoft Office refers to them as «Microsoft Word 97 2003 Document»
.dot Legacy Word templates;
officially designated «Microsoft Word 97 2003 Template»
.wbk Legacy Word document backup;
referred as «Microsoft Word Backup Document»
Excel .xls Legacy Excel worksheets;
officially designated «Microsoft Excel 97-2003 Worksheet»
.xlt Legacy Excel templates;
officially designated «Microsoft Excel 97-2003 Template»
.xlm Legacy Excel macro
PowerPoint .ppt Legacy PowerPoint presentation
.pot Legacy PowerPoint template
.pps Legacy PowerPoint slideshow
Publisher .pub Microsoft Publisher publication

Примеры устаревших, по-прежнему поддерживаемых форматов Office

Простой поиск по сайтам государственных структур и предприятий РФ (госзакупки, сайты административных единиц) обнаруживает обескураживающе большое количество официальной документации, выложенной в CFBF, зачастую созданной в древних версиях Office, например, 2003 года. Предоставим читателю провести этот опыт самостоятельно.

Применение CFBF в приложениях Microsoft Office не ограничивается поддержкой унаследованных форматов документов, имеющих современные XML-аналоги. Приложение Microsoft Publisher все еще использует только документы формата CFBF. К CFBF относятся формат .msg сообщений Outlook.
Если документ формата Office Open XML включает элементы OLE, их текущее состояние может сохраняться в файлах CFBF. В этом случае документ будет содержать включения в виде двоичных Compound-файлов.


двоичный файл формата CFBF внутри документа OfficeOpenXML

Несмотря на то, что документы различных приложений Office основаны на CFBF, каждое хранилище состояний элементов OLE/ActiveX будет иметь свой собственный дополнительный формат. Нужно иметь ввиду, что они во многом сложились исторически и были оптимизированы для максимального быстродействия на слабых компьютерах.

[MS-DOC] Word (.doc) Binary File Format https://msdn.microsoft.com/en-us/library/office/cc313153.aspx
[MS-XLS] Excel Binary File Format (.xls) https://msdn.microsoft.com/en-us/library/office/cc313154.aspx
[MS-OXMSG] Outlook Item (.msg) File Format https://msdn.microsoft.com/en-us/library/cc463912(v=exchg.80).aspx
[MS-OFORMS] Office Forms (ActiveX) Binary File Formats https://msdn.microsoft.com/en-us/library/cc313125.aspx

Некоторые опубликованные спецификации форматов Office, основанных на Структурированном Хранилище

Поддержка Хранилищ OLE форматом RTF

Rich Text Format в целом считается довольно безопасным XML-подобным форматом. Однако, в свою реализацию специалисты Microsoft не могли не включить поддержку OLE/ActiveX. Документы RTF в приложениях Microsoft могут содержать и отображать встроенные элементы OLE и должны иметь возможность сохранять их текущее состояние. Для этого к формату были добавлены такие управляющие слова, как ‘obj’, ‘objclass’, ‘objdata’. Это позволяет дополнять RTF-документы зарегистрированными в системе элементами ActiveX. Работу с форматом для компонента обеспечивает подсистема OLE, исполняемый код ActiveX прозрачно для себя использует стандартные интерфейсы IStorage и IStream. Обеспечение безопасности документов ложится на приложение-контейнер, которое может использовать устаревший унаследованный код и не учитывать всех современных нюансов работы с ActiveX.

OLE-компонент отображения формул Microsoft EQUATION

Примером уязвимости, связанной с технологией COM Structured Storage, может служить CVE-2017-11882.

Уязвимость была обнаружена в компоненте Microsoft Office настолько древнем, что производителем были утрачены исходные коды компонента.
Для сохранения состояния элементы Редактора Формул (Microsoft Equation Editor) использовали потоки структурированного хранилища. Нарушение целостности данных в потоках приводило к многочисленным уязвимостям, первой обнаруженной из которых была CVE-2017-11882, найденная специалистами Embedi.


Поток структурированного хранилища элемента EquationEditor

Несмотря на то, что компонент по умолчанию запрещен к загрузке для документов .doc и .docx, из .rtf элемент загружался успешно, позволяя атакующему выполнить вредоносный код.
После безуспешных попыток вручную исправить уязвимости в исполняемом коде в отсутствие исходного кода, в Microsoft были вынуждены исключить компонент Редактора Формул из пакета Office.

Некоторые другие унаследованные двоичные форматы, используемые в пакете Microsoft Office

Графический фильтр EPS

Графический фильтр EPS представляет собой компонент Office, который отвечает за редактирование EPS-изображений. Они являются векторными и строятся при помощи интерпретации внутреннего языка Encapsulated PostScript (версия обычного PostScript с некоторыми ограничениями).

В силу своих особенностей этот язык поддерживает самые разнообразные конструкции и возможности. Благодаря чему уязвимости повреждения памяти в графическом фильтре EPS эксплуатируются достаточно легко. Богатство языка делает возможным использование техник HeapSpray (например, возможность использования циклов) и HeapFengShui (предсказуемость выделения памяти интерпретатором). Даже несмотря на то, что рендеринг изображения происходит на виртуальном принтере, а само исполнение программы «EPS» происходит в рамках изолированного интерпретатора, наличие благоприятных возможностей эксплуатации уязвимостей и старая кодовая база сделали EPS едва ли не самым распространенным вектором атаки офисных приложений.

Ввиду того, что модуль был изначально разработан компанией Access Softek, а затем передан компании Microsoft, в этом компоненте найдено и успешно эксплуатируется существенное число «неизвестных» уязвимостей. Например, в апреле 2017 года компанией FireEye Inc. были найдены уязвимости CVE-2017-0261 и CVE-2017-0262. Эти две уязвимости повреждения памяти позволили злоумышленникам построить READ/WRITE-примитивы, с помощью которых они и добились выполнения своего кода за пределами изолированного процесса («песочницы») интерпретатора PostScript. Злоумышленники могут читать и записывать произвольные участки памяти в адресном пространстве уязвимого процесса, а также могут выполнить, например, поиск необходимых ROP гаджетов для построения ROP-цепочки, делающей остальной шелл-код исполняемым.

В обоих случаях атакующие добивались исполнения произвольного кода похожим образом: создавали объект в памяти с контролируемым содержимым (это было возможно сделать при помощи R/W примитивов) и вызывали один из его методов при помощи функции PostScript.

Данные уязвимости в графическом фильтре «EPS» стали популярным вектором атаки. Причем настолько, что компания Microsoft в апреле 2017 разработала обновление, которое полностью отключает графический фильтр. Однако, патч применим только для версии MsOffice 2010 SP2 и выше.

Базы данных Access

Система управления БД Microsoft Access представляет собой мощный инструмент управления сравнительно небольшим объемом данных, например, реестром оборудования какой-либо организации. Access позволяет легко создавать отчеты на основе информации в базе данных. Также приложение можно использовать как front-end для управления другими СУБД, включая Microsoft SQL Server (при помощи ODBC-драйверов).
Приложение и формат БД разрабатывались очень давно и обладают рядом архитектурных недостатков:

  • использование макросов VBA в качестве некоторых триггеров и хранимых процедур;
  • возможность использования ссылок на другие базы данных;
  • закрытость формата БД препятствует использованию существующих баз в других окружениях.

Первый недостаток весьма серьезный, поскольку VBA-макросы по своим возможностям равносильны обычным исполняемым файлам. По этой причине использование Access может стать проблемой для безопасности.
Пользователь должен доверять БД, с которой работает, и быть уверенным, что в ней не содержится вредоносный код, внесенный злоумышленником. В противном случае запрет исполнения макросов существенно сокращает функциональность приложения для работы с данными в таблицах и представлениями.

Файлы Личных Папок Outlook

Почтовый клиент пакета Microsoft Office использует собственный формат файла-хранилища для сообщений, пользовательской структуры папок, вложений, адресной книги и т.п. Это многоуровневый формат, тесно связанный с подсистемой MAPI, предоставляющей доступ к файлам личных папок посредством собственных интерфейсов.

Спецификация Outlook Personal Folders (.pst) была опубликована производителем: https://msdn.microsoft.com/en-us/library/ff385210.aspx.

Спецификация .ost не была опубликована, и формально доступ к файлу Offline Storage Table может осуществляться только посредством MAPI. На деле эти форматы очень схожи и редактирование .ost также возможно. Необходимо иметь ввиду, что синхронизация отредактированного содержимого файла Offline Storage Table с данными на сервере Exchange может привести к необратимой порче данных и утере значимой информации.

Файл владельца/OwnerFile

Проблема совместной работы над документами Office, расположенными в сетевых хранилищах, была когда-то решена при помощи временных файлов простого формата, так называемых OwnerFile. Если файл в данный момент заблокирован для редактирования, приложение ищет в той же директории файл с коротким именем формата «~$name.doc». Файл содержит имя пользователя, открывшего документ в ASCII и Unicode форматах, в обоих случаях под имя отведен фиксированный размер массива. При создании файла неиспользуемые байты массива заполняются мусорными значениями из памяти приложения, что потенциально может привести к раскрытию чувствительной информации (в целом, из-за размера файла вероятность этого невелика). Имя пользователя в файле владельца также легко подделывается.


сообщение MicrosoftWord при попытке открытия заблокированного документа

Механизм шифрования офисных документов

Механизм парольной защиты документов впервые появился в пакете Office 95. В то время стойкости используемых алгоритмов шифрования уделялось мало внимания, как следствие, применялись алгоритмы, на которые существовали практически применимые атаки. Этот факт стал толчком к изменению механизма в последующих версиях офисных пакетов.
В таблице приведены в хронологическом порядке наиболее распространенные в данное время офисные пакеты и используемые в них по умолчанию алгоритмы шифрования.

Версия Хеширование Шифрование
Office 2003 None RC4
Office 2007 SHA-1 x 50.000 AES-128
Office 2010 SHA-1 x 100.000 AES-128
Office 2013 SHA-512 x 100.000 AES-128
Office 2016 SHA-512 x 100.000 AES-128

Несмотря на использование стойких алгоритмов шифрования, само шифрование документа производится не сразу после установки пароля на документ, а только после следующего сохранения документа. Учитывая количество атак, основанных на невнимательности пользователей офисного пакета, это довольно важный нюанс.
Также нельзя забывать, что реализация криптоалгоритмов является трудоемкой задачей даже для высококвалифицированных разработчиков, поэтому наличие ошибок в них исключать нельзя. Ярким примером такой ошибки, повлиявшей на защиту Excel документов является уязвимость в генерации ключей, исправленная патчем MS15-110.

Несколько слов об источниках информации для исследователя

Если вы решили всерьез заглянуть «под капот» Office, нелишней будет любая дополнительная информация, позволяющая понять назначение структур данных.

  1. Весьма полезны в этом плане уже упоминавшиеся спецификации форматов, любезно (хотя и под некоторым давлением) выложенные Microsoft. С ними можно ознакомиться на сайте MSDN:
    https://msdn.microsoft.com/en-us/library/cc313105.aspx
    Необходимо отметить, что эта документация содержит пробелы и неточности, так что ориентируясь исключительно на нее написать парсер документов довольно сложно. Зато из нее можно почерпнуть сведения о многих загадочных структурах и идентификаторах, выяснить их название.
  2. VisualStudio 2010 SDK
    Среди набора заголовочных файлов есть комплект для Microsoft Office, содержащий информацию об интерфейсах, типах, перечислениях и форматах вызова процедур: https://www.microsoft.com/en-us/download/details.aspx?id=2680 (требуется установленная VS2010).
    Ознакомиться можно (например) здесь
  3. Office 97
    В исполняемых файлах современных версий пакета разделяемые библиотечные процедуры импортируются по ординалам. В ранних версиях Office они имеют внятные названия, по которым можно составить представление об их назначении. Номера ординалов в основном соответствуют современным (есть и различия!).
  4. Office 2010
    В исполняемых файлах Office 2010 содержится информация для динамической идентификации классов (RTTI), позволяющая установить имена классов и виртуальные таблицы интерфейсов. Для этого можно воспользоваться инструментами вроде Class Informer. Начиная с Office 2013, эта информация зашифрована.
  5. offparser.dll
    Компонент 64-разрядного Server 2003, содержащий упрощенные варианты реализаций классов и интерфейсов. В отличие от Office, символьная информация (.pdb) для этого модуля доступна для скачивания с сервера Microsoft. Позволяет получить имена методов, внутреннее строение экземпляров классов и названия CLSID и GUID.
  6. OutlookExpress/Microsoft Mail
    Почтовый клиент и почтовая подсистема, входящие в состав оперционной системы. Содержат упрощенный вариант MAPI (почтовая подсистема Outlook). Как и для других компонентов Windows, символьная информация доступна для скачивания. Часть кода этих компонентов содержится в опубликованных исходных кодах Windows.

Понравилась статья? Поделить с друзьями:
  • Word document extension types
  • Word document editing programs
  • Word document download for ipad
  • Word document download for free
  • Word document do not check spelling