Внутренний установщик Inno Setup не имеет названия продукта основного установщика, который конфликтует с правилом AppLocker - PullRequest
2 голосов
/ 10 февраля 2020

Я создаю подписанный установщик для C# программного обеспечения, которое будет работать в системе, защищенной Windows AppLocker. Правило AppLocker просто позволяет устанавливать программное обеспечение с именем продукта «MyAppName» в его Fqbn (полное имя двоичного файла). Я купил сертификат и подписал исполняемый файл приложения и установщик с помощью функции Into Setup 'signtool, которая работала хорошо. Установщик и исполняемый файл содержат правильное название продукта в своих Fqbn.

Но!

При установке программа установки создает временную копию самого себя, которая не содержит название продукта в своем Fqbn поле. Оригинальный установщик делает, однако. Имя издателя остается неизменным в указанном поле ("O=My Company, L=My Town, S=My State, C=DE").

Есть идеи, как решить эту проблему? Как получить имя продукта во временной копии установщика?

Обновление

Вот журналы событий, сгенерированные AppLocker на P C клиента.

Это журнал для временной копии программы установки (запрещен). Имя продукта отсутствует в Fqbn (есть только три обратных слеша): This is the log for the temporary copy of the installer (denied)

Это журнал для двоичного файла программного обеспечения (разрешено). Там есть название продукта и имя двоичного файла: This is the log for the software's binary (allowed)

1 Ответ

1 голос
/ 12 февраля 2020

Обновление до Inno Setup 6.0.4 , обновляет имя продукта двоичного файла внутреннего установщика:

Windows Условия издателя AppLocker теперь поддерживаются программой установки вплоть до и включая уровень имени файла.


Предыдущий ответ для более старых версий Inno Setup, включая объяснение проблемы:

У меня нет думаю, что в EXE есть какое-то поле Fqbn. Fqbn, вероятно, просто строка, которую AppLocker создает из других реальных полей, включая поле ProductName. Я также не думаю, что проблема связана с подписанием кода.

Кроме того, программа, которую блокирует AppLocker, не является "временной копией самой себя (= установщик)" . Это совершенно другая программа, копия Setup.e32 из папки установки Inno Setup. У него нет ProductName. И Inno Setup не позволяет самостоятельно настраивать эту программу. Хотя вы должны иметь возможность редактировать файл самостоятельно, используя необходимый инструмент, например Resource Hacker . См. Также Inno Setup change Диспетчер задач Описание для Setup.tmp .

Если вы не хотите связываться с установкой Inno Setup, вы можете изменить EXE-файл, «злоупотребив» процессом подписи. Например, посмотрите, как editbin используется как часть подписи в Microsoft SmartScreen - приостановлено с помощью установщика Inno Setup?

...