2016-07-25 10 views
5

純粋なスウィフトアプリケーションでスタックスマッシングプロテクションを有効にする方法はありますか?スウィフトとスタックのスマッシング保護

xCodeのプロジェクトビルド設定タブの下に「-fstack-protector-all」フラグを他のC++フラグに入れようとしましたが、このフラグは使用されていないか、ビルドされたアプリケーションには影響していないようです。

私はotool -Iv AppBinary | grep stackを使用しています。

+0

この質問の回答を得ましたか? – nkp

+0

いいえ。ありません。クライアントの要件を満たすために、Objective-CクラスとしてUIViewを追加しました。これにより、オブジェクティブ-cの傘のヘッダーが作成され、プロジェクトは混在Swift-Obj-cプロジェクト(純粋な迅速プロジェクトではない)としてコンパイルされました。 このビューは使用されていませんでした。 –

+0

入力いただきありがとうございます... – nkp

答えて

3

スウィフトでは、スタックスマッシングはデフォルトで有効になっており、目的のアプリケーションではビルド設定の下に "-fstack-protector-all"フラグを追加するだけです。

スタックスマッシングが有効になっているかどうかを確認する方法。 otoolコマンドを実行します。stack_chk_guardstack_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 
関連する問題