【发布时间】:2016-11-28 15:05:20
【问题描述】:
如何在纯 swift 应用程序中启用堆栈粉碎保护?
我确实尝试在 xCode 的项目构建设置选项卡下将“-fstack-protector-all”标志放入其他 C++ 标志,但似乎该标志未使用或对构建的应用程序没有影响。
为了验证构建,我使用的是otool -Iv AppBinary | grep stack。
【问题讨论】:
-
你得到这个问题的答案了吗
-
没有。我没有。为了满足客户的要求,我将 UIView 添加为 Objective-C 类。这为objective-c创建了伞头文件,并且项目被编译为混合的Swift-Obj-c项目(不是纯swift项目)。这个视图没有使用任何软件......它只是。
-
感谢您的意见...
-
查看我的回答,希望对您有所帮助
-
我和你做了同样的事情——一个 C 标志设置。我使用radare2 的工具集来验证它是否已启用。
rabin2 -I <exec file NOT app bundle>| grep -E 'pic|bits|arch|canary'btw - 当我编写一个小型 C 应用程序来证明这是有效的时,我只创建了一个 Struct。这里面没有字符数组。在这种情况下,即使启用了 Smashing Smashing,您也会在 asm 代码中看到零堆栈保护代码。