Closed tkanteck closed 2 years ago
It turns out that MSVC is not producing endbranch opcodes and it implements control flow enforcement in a different way.
https://techcommunity.microsoft.com/t5/windows-kernel-internals-blog/developer-guidance-for-hardware-enforced-stack-protection/ba-p/2163340 https://techcommunity.microsoft.com/t5/windows-kernel-internals-blog/understanding-hardware-enforced-stack-protection/ba-p/1247815
As the result, in the library windows build endbranch instructions will be removed from the assembly code.
If compiler supports
/guard:cf
option then library and application compilation leverages this extension and generates CET compatible binary.However, when testing the binary with Intel(R) SDE the tools may throw a number of control flow ENDBRANCH errors (see below) that trace back to linked CRT library.
At this moment, fix to this problem is not known and it's being investigated.
Please note that no errors against original library have been observed.