在iOS Swift中启用堆栈金丝雀

XiO*_*iOS 2 compiler-flags penetration-testing ios stack-smash

我一直在寻找一种快速为我的ios应用程序启用堆栈金丝雀的方法,但是后来我发现最新版本的xcode具有默认启用启用堆栈金丝雀所需的标志。因此,然后我正在寻找一种方法来确保启用堆栈金丝雀,正如其他站点所说,我尝试在终端机中使用otool命令($ otool -Iv appName | grep stack_chk)来确保它并期望它返回'stack_chk_guard和stack_chk_fail'标志,但未返回任何值/标志。因此,我然后尝试在“其他C标志”下手动设置标志“ -fstack-protector-all”,但仍然无法通过otool命令看到标志。

在此处输入图片说明

我在这里想念什么?还是我误解了什么?如何确保自己为应用程序启用了堆栈金丝雀?

Ale*_*kov 7

看起来您所做的一切正确。请仔细检查:

  1. 您正在-fstack-protector-all为主要目标 “其他C标志” 设置标志。或者您将其设置为项目设置,并且$(inherited)在目标构建设置中。
  2. 生成您的应用程序并在生成日志中(在报表导航器中,cmd + 8)检查AppName.app包的位置
  3. cd path-to-package/AppName.app
  4. otool在二进制文件上使用:otool -Iv AppName| grep stack