In EMET's user interface, it is possible to set the SEHOP policy to either "Application Opt Out" or "Application Opt In."(Vista may have had different settings.)
What is the specific difference between these SEHOP settings for Windows 7, and what is the relationship with EMET's SEHOP mitigation?
I have found these sources, Windows ISV Software Security Defenses and Preventing SEH Exploits, to be helpful, they explain the difference between the compiled SEH protection provided by SafeSEH, and the dynamic protection provided by (system) SEHOP. That "the best solution is to build your code to use both: SafeSEH will work on versions of Windows prior to Windows Vista SP1, and SEHOP provides a more comprehensive defense on Windows Vista SP1 and later." The MSDN article also eludes to SEHOP policies for earlier versions of Windows: "SEHOP support was extended in Windows 7 and Windows Server 2008 R2 by permitting applications to opt-in on a per application basis, as opposed to enabling or disabling SEHOP for the entire system." There is also verbiage to per application SEHOP for Windows 7; see the SRD article and registry entry for the IFEO key: DisableExceptionChainValidation
Also, see this EMET forum post: "Various applications on Windows Vista and above are not compatible with EMETs SEHOP, in this case it is advisable to disable SEHOP from EMET and use the System Mitigations SEHOP. Configure the system mitigation SEHOP
to Applications Opt-Out"
All of this leads me to think that setting EMET's SEHOP to Opt In, applies SEHOP if the key is set for the app. And if set to Opt Out, then SEHOP is ignored (You have globally disabled system SEHOP.)
If we choose, then EMET's SEHOP mitigation can be used.
Last, reading these forums there is no tool to identify whether a variant of SEHOP is enforced (unlike DEP and ASLR :(
Since I cannot embed links:
- http://msdn.microsoft.com/en-us/library/bb430720.aspx
- http://blogs.technet.com/b/srd/archive/2009/02/02/preventing-the-exploitation-of-seh-overwrites-with-sehop.aspx
- http://blogs.technet.com/b/srd/archive/2009/11/20/sehop-per-process-opt-in-support-in-windows-7.aspx?Redirected=true
- http://social.technet.microsoft.com/Forums/en-US/emet/thread/1617b165-b4ae-4a57-aeb7-e9f3ef78665f