2012-02-24 11 views
1

でシステムコールによって属性取得ページアドレスによって読み取り可能、書き込み可能、​​実行可能なようにページ属性を取得することができます任意のシステムコールや機能はありますか? は、私たちは、ページ属性を設定するためにMPROTECTを使用することができます知っているが、我々はページ属性を得ることができれば、私は考えています。コメントは感謝しています。ページは、Linux

答えて

3

ありません。さまざまなファイルの各プロセスに関する多くの情報を含むprocインタフェースを使用する必要があります。あなたが探している情報は/proc/<pid>/mapsで、平文です。あなたは実行して、現在のプロセスのためにそれを見てとることができます。

$ cat /proc/$$/maps 

あなたはman 5 procにいくつかのより多くの情報を見つけることができます。

上記のリンクで与えられた例は次のとおりです。

address   perms offset dev inode pathname 
08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm 
08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm 
08058000-0805b000 rwxp 00000000 00:00 0 
40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so 
40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so 
4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so 
40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so 
4013e000-40142000 rw-p 00000000 00:00 0 
bffff000-c0000000 rwxp 00000000 00:00 0 

あなたが見ることができるように、権限がある二(スペース区切り)フィールドです。あなたはmprotect()言及したので、だから、プログラムから(Cのように、あなたはその後、fgets()またはscanf()が出てデータをプルするために使用し、fopen()/proc/$$/mapsを開くことができます。あなたは自分のページがある範囲のものpermsフィールドを探しています。

+0

'/ procの/ */smaps'は、より詳細な形式である。 –

+0

絶対ヨルゲンセン@!けれどもOPは、特定のページへの簡単なアクセス権を探していました。 –