私は最近(少なくともFedoraとRed Hat Enterprise Linuxでは)位置独立実行ファイル(PIE)でコンパイルされた実行ファイルがより強力なASLR(アドレス空間ランダム化)保護を受けていることに気づきました。
だから:特定の実行可能ファイルが場所に依存しない実行可能ファイルにコンパイルされたかどうかをLinuxでテストする方法は?
ベストアンサー1
perl
パッケージに含まれるスクリプトを使用できますhardening-check
。Fedoraで利用可能そしてダーバン(のように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