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

Сертификация 64-битных приложений Delphi для Windows 8.1: настройка компилятора и линкера

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

Вопрос сертификации приложений для операционных систем Windows всегда был актуален для разработчиков, и с выходом Windows 8.1 требования стали ещё более строгими. Одним из ключевых моментов является соблюдение мер безопасности операционной системы, что особенно важно для 32-битных приложений, где применяется требование SafeSEH. Но что насчет 64-битных приложений, созданных с использованием Delphi? Могут ли они пройти сертификацию без соблюдения этого требования? Давайте разберемся.

Оригинальный заголовок:

Can 64-bit Delphi desktop application be certified for Windows 8.1

Описание проблемы (вопрос):

Известно, что 32-битные приложения на Delphi не могут быть сертифицированы для Windows 8.1 из-за необходимости соблюдения требования SafeSEH. Однако, что касается 64-битных приложений Delphi, могут ли они удовлетворить другие требования сертификации, учитывая, что они не обязаны выполнять требование SafeSEH? Необходимо также узнать, существуют ли определенные настройки компилятора или линкера, которые должны быть установлены в случае положительного ответа, и какая минимальная версия Delphi требуется для этого (явно не ниже XE2).

Специфически рассматривается раздел 3 требований к сертификации:

3. Apps support Windows security features

Приложения должны поддерживать функции безопасности Windows для поддержания целостности операционной системы. Неправильно скомпилированные приложения могут привести к переполнению буфера, что, в свою очередь, может вызвать отказ в обслуживании или позволить выполнение вредоносного кода.

  • 3.1. Ваше приложение не должно использовать атрибут AllowPartiallyTrustedCallersAttribute (APTCA) для обеспечения безопасного доступа к сборкам с сильной подписью.
  • 3.2. Ваше приложение должно быть скомпилировано с использованием флага /SafeSEH для обеспечения безопасной обработки исключений (только для 32-бит).
  • 3.3. Ваше приложение должно быть скомпилировано с использованием флага /NXCOMPAT для предотвращения выполнения данных.
  • 3.4. Ваше приложение должно быть скомпилировано с использованием флага /DYNAMICBASE для случайной перестановки адресного пространства (ASLR).
  • 3.5. Ваше приложение не должно читать/писать разделы Shared PE.

Альтернативный ответ:

Известно, что 32-битные приложения Delphi не могут быть сертифицированы для Windows 8.1 из-за отсутствия соблюдения SafeSEH. Однако, как насчет 64-битных приложений? Они могут пройти сертификацию, так как не требуют выполнения требования SafeSEH. Если ответ положительный, какие настройки компилятора/линкера необходимо установить, и какая минимальная версия Delphi требуется?

Подтвержденный ответ:

Требование /SafeSEH является основным препятствием для сертификации приложений, созданных в Delphi, но оно не применимо к 64-битным приложениям. Windows x64 использует совершенно другую модель исключений по сравнению с x86, и флаг /SafeSEH не применяется к 64-битным приложениям, так как они используют модель исключений на основе таблиц, а не стека. Следовательно, требование 3.2 не актуально для 64-битных приложений.

Требования 3.1 и 3.5 являются простыми для выполнения: просто не делайте того, что они запрещают. Требования 3.3 и 3.4 могут быть выполнены путем установки соответствующих флагов PE, которые можно настроить с помощью директивы {$SetPEFlags} в Delphi.

Пример кода на Object Pascal (Delphi):

program MyApplication;

{$APPTYPE CONSOLE}

uses
  System.SysUtils;

{$SetPEFlags 'NXCompat, DynamicBase'}

Заключение:

64-битные приложения Delphi могут быть сертифицированы для Windows 8.1, при условии правильной настройки компилятора и линкера. Важно убедиться, что версия Delphi не ниже XE2, и что все требования безопасности Windows, не связанные с SafeSEH, соблюдаются.

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

Разработка и сертификация 64-битных приложений на Delphi для Windows 8.1, включая настройку компилятора и линкера для соответствия требованиям безопасности.


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

Получайте свежие новости и обновления по 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:11:10/0.0056099891662598/0