0

最新の Ubuntu 16.04 x86_64 システムで実行されている次のコードを検討してください。

void main(int argc, char *argv[])                                                                      
{                                                                                                      
    while(1) {                                                                                         
        char *x = (char *)mmap(0, 1000, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);   
        printf("%p\n", x);                                                                             
        munmap(x, 1000);                                                                               
    }                                                                                                  
}                                                                                                      

その出力は次のようになります。

0x7f02ca14c000
0x7f02ca14c000
0x7f02ca14c000
0x7f02ca14c000
...

ゼロのアドレス ヒントを提供し、ASLR をグローバルに有効にしてここでランダム アドレスを取得していれば、私は予想していたでしょう。

ランダムなアドレスで匿名共有メモリを mmap() することは可能ですか?

4

1 に答える 1