Menu Close
4.2.2.4.4. チェッカーの基本の強化
強化チェッカーはデフォルトで有効になっています。--disable-hardened
コマンドラインオプションを使用すると、強化チェッカーを無効にできます。
4.2.2.4.4.1. チェッカーオプションの強化
annocheck
プログラムは、以下のオプションを確認します。
-
レイジーバインディングは、
-z now
リンカーオプションを使用して無効にします。 - プログラムには、メモリーの実行可能な領域にスタックがありません。
- GOT テーブルの再配置は読み取り専用に設定されます。
- プログラムセグメントには、読み取り、書き込み、実行のパーミッションビットセットがすべて含まれていません。
- 実行可能なコードに対する再配置はありません。
- ランタイム時に共有ライブラリーを見つけるランパス情報には、/usr で root となるディレクトリーのみが含まれます。
-
このプログラムは、
annobin
ノートが有効な状態でコンパイルされています。 -
プログラムは、
-fstack-protector-strong
オプションを指定してコンパイルされています。 -
プログラムは、
-D_FORTIFY_SOURCE=2
でコンパイルされています。 -
プログラムは、
-D_GLIBCXX_ASSERTIONS
でコンパイルされています。 -
プログラムは、
-fexceptions
を有効にしてコンパイルされています。 -
プログラムは、
-fstack-clash-protection
を有効にしてコンパイルされています。 -
プログラムは、
-O2
以降でコンパイルされています。 - プログラムには、書き込み可能で保持されている再配置はありません。
- 動的な実行ファイルには動的セグメントがあります。
-
共有ライブラリーは、
-fPIC
または-fPIE
でコンパイルされています。 -
動的な実行可能ファイルは、
-fPIE
でコンパイルされ、-pie
でリンクされています。 -
利用可能な場合は、
-fcf-protection=full
オプションが使用されていました。 -
利用可能な場合は、
-mbranch-protection
オプションが使用されていました。 -
利用可能な場合は、
-mstackrealign
オプションが使用されました。
4.2.2.4.4.2. 強化チェッカーの無効化
次のセクションでは、強化チェッカーを無効にする方法を説明します。
手順
強化チェッカーなしでファイルのノートをスキャンするには、以下を使用します。
$ annocheck --enable-notes --disable-hardened file-name
file-name を、ファイルの名前に置き換えます。