Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Настройка флагов компиляции для сертификации приложений под Windows 8 в C++ Builder XE

Delphi , ОС и Железо , Windows

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

Проблема

Разработчики, использующие C++ Builder XE, сталкиваются с трудностями при включении данных флагов. В частности, для флагов /NXCOMPAT и /DYNAMICBASE можно использовать утилиты editbin.exe из Visual Studio или peflags.exe из Cygwin, но это не является оптимальным решением, так как отсутствует возможность настройки этих флагов непосредственно в C++ Builder.

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

Решение

Для решения проблемы с флагом /SafeSEH необходимо убедить разработчиков C++ Builder обновить компилятор, чтобы он поддерживал данный флаг. Это важно, так как /SafeSEH является частью платформы Windows с XP SP2 и помогает закрыть известную уязвимость безопасности.

Альтернативные шаги

Разработчикам рекомендуется обратиться к официальному источнику поддержки C++ Builder и создать запросы на добавление поддержки флагов /NXCOMPAT и /DYNAMICBASE в линкер C++ Builder, а также на то, чтобы runtime файлы (DLLs/BPLs) распространялись уже с этими флагами, установленными. Это позволит избежать необходимости использования внешних утилит для настройки флагов.

Примеры кода

К сожалению, в C++ Builder XE нет встроенной поддержки для добавления флагов /SafeSEH, /NXCOMPAT и /DYNAMICBASE в настройки компиляции напрямую. Однако, для флагов /NXCOMPAT и /DYNAMICBASE можно использовать следующую команду через командную строку после сборки проекта:

editbin /NXCOMPAT:NO C:\path\to\your\executable.exe
editbin /DYNAMICBASE C:\path\to\your\executable.exe

Для флага /SafeSEH вручную настроить таблицы безопасных обработчиков исключений без специальных инструментов и глубокого понимания ассемблерного кода крайне сложно, и это выходит за рамки обычной разработки на C++ Builder.

Заключение

Для сертификации приложений в Windows Store важно убедиться, что используются все необходимые флаги компиляции. Если C++ Builder XE не поддерживает нужные флаги, разработчикам следует обратиться к разработчикам C++ Builder с соответствующими запросами и предложениями.

Обновление

Разработчикам следует также учитывать, что с выпуском новых версий C++ Builder, таких как C++ Builder XE8, XE9 и последующих, поддержка таких флагов может быть улучшена или реализована. Рекомендуется следить за обновлениями и обновлять свои инструменты разработки, чтобы соответствовать текущим требованиям сертификации.

Создано по материалам из источника по ссылке.

Установка флагов компиляции для сертификации приложений под Windows 8 в C++ Builder XE и связанные с этим проблемы и решения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 11:18:21/0.0036220550537109/0