Определение типа установщика из двоичного файла установщика
Можно ли проверить существующий установщик и определить, является ли он установщиком 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 /?
может просто сказать тебе.
Но, как правило, нет спецификаций или практических требований о том, что сборщик установщика или среда выполнения должны быть идентифицируемыми.