Определение типа установщика из двоичного файла установщика

Можно ли проверить существующий установщик и определить, является ли он установщиком WIX / WISE / OtherTechnology?

2 ответа

Спецификация установщика Windows охватывает это:

Создание свойства "Сводка приложения"

ORCA почему-то не показывает это поле, но быстрый фрагмент кода показывает это:

using Microsoft.Deployment.WindowsInstaller;
foreach (string file in Directory.GetFiles(@"C:\windows\installer", "*.msi", SearchOption.TopDirectoryOnly))
{
  using (Database database = new Database(file, DatabaseOpenMode.ReadOnly))
  {
    Console.WriteLine("{0} : {1}", database.ExecutePropertyQuery("ProductName"), database.SummaryInfo.CreatingApp);
  }                
}

Возвращает интересные результаты...

Все файлы можно проверить с помощью проводника Windows: щелкните правой кнопкой мыши "Свойства, затем Verison или Details. Это может быть не окончательным. По умолчанию пакеты установщика Windows, созданные с помощью WiX, указывают на это в свойстве, которое можно просмотреть с помощью проводника Windows. Для полного доступа к пакетам установщика Windows вы можете использовать Orca из Windows SDK или InstMSI, среди прочего. Если есть двоичные файлы с пользовательскими действиями, вы можете извлечь их (как DLL) и проверить их. Пользовательские действия могут также использовать определенные соглашения об именах для свойств или пользовательских таблиц. Например, WiX использует WIX_... для некоторых имен свойств. Аналогично, диалоги могут иметь узнаваемые имена или макеты управления.

Для исполняемых файлов попробуйте CFF Explorer или UniExtractor. Также, the.exe /? может просто сказать тебе.

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

Другие вопросы по тегам