Для сертификации приложений Windows 8 существуют (среди прочего) следующие требования:
- 3.2 Ваше приложение должно быть скомпилировано с использованием флага
/SafeSEH
для обеспечения безопасной обработки исключений - 3.3 Ваше приложение должно быть скомпилировано с помощью флага
/NXCOMPAT
, чтобы предотвратить выполнение данных - 3.4 Ваше приложение должно быть скомпилировано с использованием флага
/DYNAMICBASE
для рандомизации макета адресного пространства (ASLR)
Мне не удалось выяснить, как включить любой из них в С++ Builder XE.
Для /NXCOMPAT
и /DYNAMICBASE
можно использовать editbin.exe
из VS или peflags.exe
из Cygwin. Хотя я бы чувствовал себя более уверенно в возможных побочных эффектах, если бы был встроенный способ их включения.
В любом случае, я полностью потерял в отношении /SafeSEH
.