Linuxバイナリが場所に依存しないコードでコンパイルされたかどうかをテストする方法は?

Linuxバイナリが場所に依存しないコードでコンパイルされたかどうかをテストする方法は?

私は最近(少なくともFedoraとRed Hat Enterprise Linuxでは)位置独立実行ファイル(PIE)でコンパイルされた実行ファイルがより強力なASLR(アドレス空間ランダム化)保護を受けていることに気づきました。

だから:特定の実行可能ファイルが場所に依存しない実行可能ファイルにコンパイルされたかどうかをLinuxでテストする方法は?

ベストアンサー1

perlパッケージに含まれるスクリプトを使用できますhardening-checkFedoraで利用可能そしてダーバン(のようにhardening-includes)。これを読んでくださいDebian Wiki ページ確認するコンパイルフラグの詳細。これはDebianに固有のものですが、理論はRed Hatにも当てはまります。

例:

$ hardening-check $(which sshd)
/usr/sbin/sshd:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: yes (some protected functions found)
 Read-only relocations: yes
 Immediate binding: yes

おすすめ記事