Skip to content

Commit dcd3c0e

Browse files
Harden native DLLs
Enable Code Flow Guard (CFG), Address Space Layout Randomization (ASLR) and Control-flow Enforcement Technology (CET) for native projects to harden the DLLs for release builds.
1 parent 7b8b263 commit dcd3c0e

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/OpenTelemetry.AutoInstrumentation.Native/OpenTelemetry.AutoInstrumentation.Native.DLL.vcxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
<PlatformToolset>v143</PlatformToolset>
4141
<WholeProgramOptimization>true</WholeProgramOptimization>
4242
<CharacterSet>Unicode</CharacterSet>
43+
<LinkControlFlowGuard>true</LinkControlFlowGuard>
4344
</PropertyGroup>
4445
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
4546
<ConfigurationType>DynamicLibrary</ConfigurationType>
@@ -53,6 +54,7 @@
5354
<PlatformToolset>v143</PlatformToolset>
5455
<WholeProgramOptimization>true</WholeProgramOptimization>
5556
<CharacterSet>Unicode</CharacterSet>
57+
<LinkControlFlowGuard>true</LinkControlFlowGuard>
5658
</PropertyGroup>
5759
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
5860
<ImportGroup Label="ExtensionSettings">
@@ -155,13 +157,17 @@
155157
<LanguageStandard>stdcpp17</LanguageStandard>
156158
<MultiProcessorCompilation>true</MultiProcessorCompilation>
157159
<AdditionalIncludeDirectories>$(LIB_INCLUDES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
160+
<ControlFlowGuard>Guard</ControlFlowGuard>
158161
</ClCompile>
159162
<Link>
160163
<SubSystem>Windows</SubSystem>
161164
<GenerateDebugInformation>true</GenerateDebugInformation>
162165
<EnableCOMDATFolding>true</EnableCOMDATFolding>
163166
<OptimizeReferences>true</OptimizeReferences>
164167
<ModuleDefinitionFile>.\OpenTelemetry.AutoInstrumentation.Native.def</ModuleDefinitionFile>
168+
<CETCompat>true</CETCompat>
169+
<DynamicBase>true</DynamicBase>
170+
<AdditionalOptions>/CETCOMPAT %(AdditionalOptions)</AdditionalOptions>
165171
</Link>
166172
<PreBuildEvent>
167173
<Command>IF EXIST "$(SolutionDir)pre-build-events-cpp.bat" CALL "$(SolutionDir)pre-build-events-cpp.bat" "$(TargetPath)" "$(TargetFileName)" "$(TargetDir)" "$(TargetName)"</Command>
@@ -182,13 +188,17 @@
182188
<LanguageStandard>stdcpp17</LanguageStandard>
183189
<MultiProcessorCompilation>true</MultiProcessorCompilation>
184190
<AdditionalIncludeDirectories>$(LIB_INCLUDES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
191+
<ControlFlowGuard>Guard</ControlFlowGuard>
185192
</ClCompile>
186193
<Link>
187194
<SubSystem>Windows</SubSystem>
188195
<GenerateDebugInformation>true</GenerateDebugInformation>
189196
<EnableCOMDATFolding>true</EnableCOMDATFolding>
190197
<OptimizeReferences>true</OptimizeReferences>
191198
<ModuleDefinitionFile>.\OpenTelemetry.AutoInstrumentation.Native.def</ModuleDefinitionFile>
199+
<CETCompat>true</CETCompat>
200+
<DynamicBase>true</DynamicBase>
201+
<AdditionalOptions>/CETCOMPAT %(AdditionalOptions)</AdditionalOptions>
192202
</Link>
193203
<PreBuildEvent>
194204
<Command>IF EXIST "$(SolutionDir)pre-build-events-cpp.bat" CALL "$(SolutionDir)pre-build-events-cpp.bat" "$(TargetPath)" "$(TargetFileName)" "$(TargetDir)" "$(TargetName)"</Command>

src/OpenTelemetry.AutoInstrumentation.Native/OpenTelemetry.AutoInstrumentation.Native.vcxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,14 @@
4747
<PlatformToolset>v143</PlatformToolset>
4848
<WholeProgramOptimization>true</WholeProgramOptimization>
4949
<CharacterSet>Unicode</CharacterSet>
50+
<LinkControlFlowGuard>true</LinkControlFlowGuard>
5051
</PropertyGroup>
5152
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
5253
<ConfigurationType>StaticLibrary</ConfigurationType>
5354
<UseDebugLibraries>false</UseDebugLibraries>
5455
<PlatformToolset>v143</PlatformToolset>
5556
<WholeProgramOptimization>true</WholeProgramOptimization>
57+
<LinkControlFlowGuard>true</LinkControlFlowGuard>
5658
<CharacterSet>Unicode</CharacterSet>
5759
</PropertyGroup>
5860
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -138,12 +140,16 @@
138140
<PreprocessorDefinitions>_TARGET_64BIT;BIT64;HOST_64BIT;AMD64;_UNICODE;UNICODE;OTEL_AUTO_VERSION_MAJOR=$(OTEL_AUTO_VERSION_MAJOR);OTEL_AUTO_VERSION_MINOR=$(OTEL_AUTO_VERSION_MINOR);OTEL_AUTO_VERSION_PATCH=$(OTEL_AUTO_VERSION_PATCH);%(PreprocessorDefinitions)</PreprocessorDefinitions>
139141
<AdditionalIncludeDirectories>$(LIB_INCLUDES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
140142
<TreatWarningAsError>true</TreatWarningAsError>
143+
<ControlFlowGuard>Guard</ControlFlowGuard>
141144
</ClCompile>
142145
<Lib>
143146
<AdditionalLibraryDirectories>$(LIB_INCLUDES);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
144147
</Lib>
145148
<Link>
146149
<AdditionalLibraryDirectories>$(LIB_INCLUDES);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
150+
<CETCompat>true</CETCompat>
151+
<DynamicBase>true</DynamicBase>
152+
<AdditionalOptions>/CETCOMPAT %(AdditionalOptions)</AdditionalOptions>
147153
</Link>
148154
</ItemDefinitionGroup>
149155
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -162,12 +168,16 @@
162168
<PreprocessorDefinitions>_UNICODE;UNICODE;X86;HOST_X86;OTEL_AUTO_VERSION_MAJOR=$(OTEL_AUTO_VERSION_MAJOR);OTEL_AUTO_VERSION_MINOR=$(OTEL_AUTO_VERSION_MINOR);OTEL_AUTO_VERSION_PATCH=$(OTEL_AUTO_VERSION_PATCH);%(PreprocessorDefinitions)</PreprocessorDefinitions>
163169
<AdditionalIncludeDirectories>$(LIB_INCLUDES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
164170
<TreatWarningAsError>true</TreatWarningAsError>
171+
<ControlFlowGuard>Guard</ControlFlowGuard>
165172
</ClCompile>
166173
<Lib>
167174
<AdditionalLibraryDirectories>$(LIB_INCLUDES);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
168175
</Lib>
169176
<Link>
170177
<AdditionalLibraryDirectories>$(LIB_INCLUDES);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
178+
<CETCompat>true</CETCompat>
179+
<DynamicBase>true</DynamicBase>
180+
<AdditionalOptions>/CETCOMPAT %(AdditionalOptions)</AdditionalOptions>
171181
</Link>
172182
</ItemDefinitionGroup>
173183
<ItemGroup>

0 commit comments

Comments
 (0)