Per la certificazione 8 applicazione di Windows, ci sono (tra gli altri) i seguenti requisiti:Abilita sicurezza Gestione delle eccezioni in C++ Builder
- 3,2 La tua app deve essere compilata utilizzando il flag
/SafeSEH
per garantire eccezioni alla movimentazione sicura - 3.3 la vostra applicazione deve essere compilata utilizzando il flag
/NXCOMPAT
per impedire l'esecuzione di dati - 3.4 la vostra applicazione deve essere compilata utilizzando il flag
/DYNAMICBASE
per ASLR (ASLR)
Non sono riuscito a scoprire come abilitare uno di questi in C++ Builder XE.
Per /NXCOMPAT
e /DYNAMICBASE
, si può usare editbin.exe
da VS o peflags.exe
da Cygwin. Anche se mi sentirei più fiducioso sui possibili effetti collaterali, se ci fosse un modo nativo per abilitarli.
In ogni caso, sono totalmente a perdita per /SafeSEH
.
Certamente Delphi XE2 non produce file eseguibili con [Tabelle di gestore di eccezioni di sicurezza] (http://www.jwsecure.com/2007/07/06/the-safe-exception-handler-table/). Non ho CPPBuilder per controllarlo, ma scommetterei di no. Penso che sarai sfortunato e dovresti inviare una richiesta di QC. In realtà potrebbe essere che i gestori di eccezioni strutturati siano sicuri, ma non è molto utile per te se i file PE non sono marcati per dirlo. Le tue app a 64 bit andranno bene, ma non è ancora possibile in CPPBuilder. –
Rapporto QC pertinente: http://qc.embarcadero.com/wc/qcmain.aspx?d=106781 –