我一直在添加一些“编译标志”,以激活二进制文件中的安全措施。然后我使用 checksec 工具检查这些措施是否已实施。除了FORTIFY之外,我已能激活它们所有。
即使我使用-D_FORTIFY_SOURCE=2编译,checksec仍然输出:
对于其他生成的二进制文件,该宏具有预期行为,也就是说,其他二进制文件已被“加固”。
我的应用程序采用 c++17 编写,使用gcc 9.3.0编译,并使用-O2进行编译。
有人知道为什么我的二进制文件没有被加固吗?
提前感谢。
即使我使用-D_FORTIFY_SOURCE=2编译,checksec仍然输出:
我必须说,我为许多二进制文件使用通用的 CMakeLists.txt,并将 -D_FORTIFY_SOURCE=2 添加到全局 add_compile_options 部分。FORTIFY = No, Fortified = 0, Fortifiable = 4
对于其他生成的二进制文件,该宏具有预期行为,也就是说,其他二进制文件已被“加固”。
我的应用程序采用 c++17 编写,使用gcc 9.3.0编译,并使用-O2进行编译。
有人知道为什么我的二进制文件没有被加固吗?
提前感谢。