PIE (Position Independent Executables) は、実行可能ファイルをランダムなメモリアドレスにロードできるようにすることでセキュリティを強化し、特定の種類の攻撃を緩和するように設計されています。
iOS アプリケーションの Mach-O ファイルフォーマットの場合:
PIE は MH_EXECUTE ファイルタイプの実行可能ファイルに適用できます。これは基本的にメインアプリバイナリ (例: YourApp.app/YourApp) を意味します。
MH_EXECUTE
YourApp.app/YourApp
MH_DYLIB ファイルタイプの共有ライブラリ (dylib および framework) は本質的に位置独立であるため、MH_PIE フラグを利用しません。
MH_DYLIB
MH_PIE
このテストケースでは、メイン実行可能ファイルが PIE でコンパイルされているかどうかをチェックします。
アプリケーションを抽出して、メインバイナリを特定します (アプリの取得と抽出 (Obtaining and Extracting Apps)arrow-up-right)。
メインバイナリで コンパイラが提供するセキュリティ機能の取得 (Obtaining Compiler-Provided Security Features)arrow-up-right を実行して、"pic" または選択したツールで使用される対応するキーワードを grep で検索します。
出力には PIC が有効か無効かをリストする可能性があります。
PIC が無効になっている場合、そのテストケースは不合格です。
Last updated 6 days ago