在ios swift中启用栈金丝雀

问题描述:

我正在寻找一种方法来为我的ios应用程序在swift中启用栈金丝雀,但后来我发现最近版本的xcodes具有启用栈默认情况下所需的标志。所以然后我正在寻找一种方法来确保启用堆栈canaries,而其他站点说,我试图用终端($ otool -Iv appName | grep stack_chk)中的otool命令来确保它并期望它返回'stack_chk_guard和stack_chk_fail'标志,但它没有返回任何值/标志。于是我尝试在'其他C标志'下手动设置'-fstack-protector-all'标志,但我仍然看不到使用otool命令的标志。在ios swift中启用栈金丝雀

enter image description here

缺少什么我在这里?还是我误解了一些东西?我怎样才能保证我的应用程序启用了stack canaries?

看起来你正在做的一切都是正确的。请仔细检查

  1. 要设置-fstack-protector-all标志主要目标“其他C标志”。或者您将其设置为项目设置在目标版本设置中有$(inherited)
  2. 构建应用程序,并生成日志(在报告中导航,CMD + 8)检查哪里是AppName.app
  3. cd path-to-package/AppName.app
  4. 二进制文件使用otoolotool -Iv AppName| grep stack
+0

我做确切的4个步骤完全相同不知道怎么回事。 – XiOS

+0

@XiOS你的项目中是否有一个Objective-C文件? –

+0

是的,有几个.. – XiOS