代码之家  ›  专栏  ›  技术社区  ›  Trey

ASLR是否影响maps文件?

  •  1
  • Trey  · 技术社区  · 6 年前

    ASLR是否影响maps文件? AFAIK对于64位二进制文件,文本段的默认虚拟地址是0x400000,但是在解析 /过程/pid/映射 文件我发现,操作系统显然是使用随机地址的文本和数据段,即:

    564992f16000-564992f17000 r-xp 00000000 00:2c 306966 /tmp/foo 564993116000-564993117000 r--p 00000000 00:2c 306966 /tmp/foo 564993117000-564993118000 rw-p 00001000 00:2c 306966 /tmp/foo

    有人能解释一下这是怎么回事吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Florian Weimer    6 年前

    如果主程序是PIE(独立于位置的可执行文件),其加载地址也将随机化。即使禁用ASLR(比如在GDB下运行默认值)也不会将其返回到0x400000,它通常是地址0x5555554000(但这可能取决于内核)。