2011-08-05 5 views
1

mprotect()を使用してメモリ領域に保護フラグを設定します。 その後、このメモリ領域の保護フラグを復元します。メモリ領域の保護フラグを取得する方法、フラグはmprotectのPROT_READ/PROT_EXECです

私の質問は、メモリ領域の保護フラグを取得する方法ですか? フラグはPROT_READ ...

私の回避策は、/ proc/self/mapsを手動で解析することです。 しかし、この解決策は不器用です...

私は使用できるシステムコールがあるのだろうかと思います。

答えて

2

一般的にはこれが唯一の方法です。 POSIXは保護にアクセスする手段を提供していません。ページをマップするコードを制御できるアプリケーション固有の用途では、その時点でフラグを保存することができますが、一般的には/proc/self/mapsを読み込む必要があります。さらに、/procを読み取ることができない場合は、デフォルトの権限にフォールバックすることもできます。 PROT_READ|PROT_WRITEはほとんどの場合、おそらく妥当なデフォルトですが、場合によってはPROT_EXECも必要です。

関連する問題