- Как изменить манифест в исполняемом файле?
- Практическое руководство. Повторное подписание манифестов приложения и развертывания How to: Re-sign application and deployment manifests
- Повторное подписывание манифестов приложения и развертывания Re-sign the Application and Deployment Manifests
- Повторное подписание манифестов приложения и развертывания с помощью Mage.exe To re-sign the application and deployment manifests with Mage.exe
- Обновление и повторное подписание манифестов приложения и развертывания Update and re-sign the application and deployment manifests
- Обновление и повторное подписание манифестов приложения и развертывания с помощью Mage.exe To update and re-sign the application and deployment manifests with Mage.exe
- Схема манифеста пакета приложений для Windows 8 Windows 8 app package manifest schema
Как изменить манифест в исполняемом файле?
У меня два исполняемых файла, первый — второй. Второй — с различными типами манифестаций: asInvoker , requireAdministrator и т.д.
Можно ли изменить манифест исполняемого файла? Я ищу простое решение на C
Я бы хотел не хранить несколько экземпляров исполняемого файла с различными типами манифестаций, а не поддерживать инструмент сторонних разработчиков, который мог бы его изменить. Кстати, это возможно, и этот инструмент существует: MT (инструмент манифеста) из пакета visual studio, link.
Да, вы можете изменить файл манифеста с помощью mt.exe из Win32 SDK. Но это только то, что вы должны делать во время разработки или тестирования. Вы не можете развернуть этот инструмент на машине клиента, поэтому вы не можете использовать его для динамического изменения манифеста взад и вперед.
Но это нормально, потому что вам никогда не нужно менять файл манифеста взад и вперед во время выполнения. Файл исполняемого файла манифеста должен указывать минимальные требуемые привилегии для этого EXE. Таким образом, если пользователь может запустить EXE без административных привилегий (т.е. Без повышения) — даже если это означает, что приложение работает с ограниченной функциональностью — манифест приложения должен указывать «asInvoker». Пользователь может всегда выбирать для запуска приложения с правами администратора, если им нужны эти дополнительные функции.
И, конечно же, вы можете запускать EXE программно с повышением. Вы делаете это с помощью ShellExecuteEx , указывая глагол «runas» для параметра lpVerb . Это будет иметь такой же эффект, как установка уровня разрешений в манифесте приложения на «requireAdministrator».
С вашего вопроса не совсем ясно, как настроено ваше приложение. Обычно первый EXE имеет «asInvoker» в своем манифесте, чтобы любой пользователь мог его запустить. Для этого не нужны административные привилегии. Однако, если есть что-то, что может потребоваться для этого, требуются административные привилегии, он отображает некоторый бит пользовательского интерфейса с значком экрана UAC, и при нажатии на него запускается второй EXE (с установленным в манифесте «requireAdministrator»), который выполняет все задача требует повышения. Это второе приложение не нужно распространять в форме «asInvoker», потому что для него всегда требуется повышение. Вы заметите, что именно так настроены все приложения Microsoft, включая биты, поставляемые с операционной системой.
Практическое руководство. Повторное подписание манифестов приложения и развертывания How to: Re-sign application and deployment manifests
После внесения изменений в свойства развертывания в манифесте приложения для Windows Forms приложений, Windows Presentation Foundation приложений (XBAP) или решений Office необходимо повторно подписать манифесты приложения и развертывания с помощью сертификата. After you make changes to deployment properties in the application manifest for Windows Forms applications, Windows Presentation Foundation applications (xbap), or Office solutions, you must re-sign both the application and deployment manifests with a certificate. Этот процесс позволяет проверить, не установлены ли на компьютер конечного пользователя измененные злоумышленниками файлы. This process helps ensure that tampered files are not installed on end user computers.
Другой сценарий, в котором вы можете повторно подписать манифесты, — когда ваши клиенты хотят подписать манифесты приложения и развертывания с помощью собственного сертификата. Another scenario where you might re-sign the manifests is when your customers want to sign the application and deployment manifests with their own certificate.
Повторное подписывание манифестов приложения и развертывания Re-sign the Application and Deployment Manifests
В этой процедуре предполагается, что вы уже внесли изменения в файл манифеста приложения (manifest). This procedure assumes that you have already made changes to your application manifest file (.manifest). Дополнительные сведения см. в разделе инструкции. изменение свойств развертывания. For more information, see How to: Change deployment properties.
Повторное подписание манифестов приложения и развертывания с помощью Mage.exe To re-sign the application and deployment manifests with Mage.exe
Откройте окно командной строки Visual Studio . Open a Visual Studio Command Prompt window.
Измените каталоги на папку, содержащую файлы манифеста, которые необходимо подписать. Change directories to the folder that contains the manifest files that you want to sign.
Введите следующую команду, чтобы подписать файл манифеста приложения. Type the following command to sign the application manifest file. Замените манифестфиленаме именем файла манифеста и расширением. Replace ManifestFileName with the name of your manifest file plus the extension. Замените Certificate на относительный или полный путь к файлу сертификата и замените Password паролем для сертификата. Replace Certificate with the relative or fully qualified path of the certificate file and replace Password with the password for the certificate.
Например, можно выполнить следующую команду, чтобы подписать манифест приложения для надстройки, приложения Windows Form или приложения Windows Presentation Foundation браузера. For example, you could run the following command to sign an application manifest for an add-in, a Windows Form application, or a Windows Presentation Foundation browser application. Временные сертификаты, созданные Visual Studio, не рекомендуются для развертывания в рабочих средах. Temporary certificates created by Visual Studio are not recommended for deployment into production environments.
Введите следующую команду, чтобы обновить файл манифеста развертывания и подписать его, заменив имена заполнителей, как на предыдущем шаге. Type the following command to update and sign the deployment manifest file, replacing the placeholder names as in the previous step.
Например, можно выполнить следующую команду, чтобы обновить и подписать манифест развертывания для надстройки Excel, приложения Windows Forms или приложения Windows Presentation Foundation браузера. For example, you could run the following command to update and sign a deployment manifest for an Excel add-in, a Windows Forms application, or a Windows Presentation Foundation browser application.
Обновление и повторное подписание манифестов приложения и развертывания Update and re-sign the application and deployment manifests
В этой процедуре предполагается, что вы уже внесли изменения в файл манифеста приложения (manifest), но есть и другие файлы, которые были обновлены. This procedure assumes that you have already made changes to your application manifest file (.manifest), but that there are other files that were updated. При обновлении файлов также необходимо обновить хэш, представляющий файл. When files are updated, the hash that represents the file must also be updated.
Обновление и повторное подписание манифестов приложения и развертывания с помощью Mage.exe To update and re-sign the application and deployment manifests with Mage.exe
Откройте окно командной строки Visual Studio . Open a Visual Studio Command Prompt window.
Измените каталоги на папку, содержащую файлы манифеста, которые необходимо подписать. Change directories to the folder that contains the manifest files that you want to sign.
Удалите расширение . deploy из файлов в выходной папке публикации. Remove the .deploy file extension from the files in the publish output folder.
Введите следующую команду, чтобы обновить манифест приложения новыми хэшами для обновленных файлов и подписать файл манифеста приложения. Type the following command to update the application manifest with the new hashes for the updated files and sign the application manifest file. Замените манифестфиленаме именем файла манифеста и расширением. Replace ManifestFileName with the name of your manifest file plus the extension. Замените Certificate на относительный или полный путь к файлу сертификата и замените Password паролем для сертификата. Replace Certificate with the relative or fully qualified path of the certificate file and replace Password with the password for the certificate.
Например, можно выполнить следующую команду, чтобы подписать манифест приложения для надстройки, приложения Windows Form или приложения Windows Presentation Foundation браузера. For example, you could run the following command to sign an application manifest for an add-in, a Windows Form application, or a Windows Presentation Foundation browser application. Временные сертификаты, созданные Visual Studio, не рекомендуются для развертывания в рабочих средах. Temporary certificates created by Visual Studio are not recommended for deployment into production environments.
Введите следующую команду, чтобы обновить файл манифеста развертывания и подписать его, заменив имена заполнителей, как на предыдущем шаге. Type the following command to update and sign the deployment manifest file, replacing the placeholder names as in the previous step.
Например, можно выполнить следующую команду, чтобы обновить и подписать манифест развертывания для надстройки Excel, приложения Windows Forms или приложения Windows Presentation Foundation браузера. For example, you could run the following command to update and sign a deployment manifest for an Excel add-in, a Windows Forms application, or a Windows Presentation Foundation browser application.
Добавьте расширение . deploy обратно в файлы, кроме файлов манифеста приложения и развертывания. Add the .deploy file extension back to the files, except the application and deployment manifest files.
Схема манифеста пакета приложений для Windows 8 Windows 8 app package manifest schema
Эта ссылка предоставляет сведения для каждого элемента, атрибута и типа данных, определяющего схему манифеста пакета приложения для приложений UWP. This reference provides details for each element, attribute, and data type that defines the schema for the app package manifest for UWP apps. Файл определения схемы — Аппксманифестсчема. xsd. The schema definition file is AppxManifestSchema.xsd.
В следующей таблице перечислены все элементы этой схемы, отсортированные в алфавитном порядке по имени. The following table lists all of the elements in this schema, sorted alphabetically by name.
Элемент Element | Описание Description |
---|---|
Активатаблекласс (тип: CT_InProcessActivatableClass) ActivatableClass (type: CT_InProcessActivatableClass) |