5
如何在纯swift应用程序中启用堆栈粉碎保护?Swift和Stack粉碎保护
我曾尝试在xCode中的项目构建设置选项卡下将“-fstack-protector-all”标志放置到其他C++标志下,但看起来,此标志未使用或对构建的应用程序没有影响。
要验证版本,我正在使用otool -Iv AppBinary | grep stack
。
如何在纯swift应用程序中启用堆栈粉碎保护?Swift和Stack粉碎保护
我曾尝试在xCode中的项目构建设置选项卡下将“-fstack-protector-all”标志放置到其他C++标志下,但看起来,此标志未使用或对构建的应用程序没有影响。
要验证版本,我正在使用otool -Iv AppBinary | grep stack
。
在Swift中,默认启用堆栈压缩,只需要在objective-c应用程序的构建设置下添加“-fstack-protector-all”标志。
如何检查堆栈粉碎是否启用。 运行otool命令并存在stack_chk_guard
和stack_chk_fail
表示代码被堆栈粉碎保护。
$ otool -Iv <appname>|grep stack
0x0013dfg 520 ___stack_chk_fail
0x001d009 521 ___stack_chk_guard
0x001fd345 520 ___stack_chk_fail
0x000000010087efd 513 ___stack_chk_fail
0x0000000100098hf3 514 ___stack_chk_guard
0x00000001000897gfr 513 ___stack_chk_fail
你有没有得到这个问题的答案 – nkp
不,我没有。为了满足客户的要求,我将UIView作为Objective-C类加入。这创建伞标题为Objective-C和项目被编译为混合的Swift-Obj-c项目(不是纯粹的swift项目)。 此视图没有使用任何软件......它就是这样。 –
感谢您的输入... – nkp