ASLR 会影响地图文件吗?
Does ASLR affect the maps file?
ASLR 会影响地图文件吗?
据我所知,对于 64 位二进制文件,文本段的默认虚拟地址是 0x400000,但是在解析 /proc/pid/maps 文件时,我发现 OS 显然使用随机文本和数据段的地址,即:
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
谁能解释一下这是怎么回事?
如果主程序是PIE(Position-Independent Executable),它的加载地址也会被随机化。即使禁用 ASLR(例如 运行 在 GDB 下使用默认设置)也不会 return 到 0x400000,它通常是地址 0x55555554000(但这可能取决于内核)。
ASLR 会影响地图文件吗? 据我所知,对于 64 位二进制文件,文本段的默认虚拟地址是 0x400000,但是在解析 /proc/pid/maps 文件时,我发现 OS 显然使用随机文本和数据段的地址,即:
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
谁能解释一下这是怎么回事?
如果主程序是PIE(Position-Independent Executable),它的加载地址也会被随机化。即使禁用 ASLR(例如 运行 在 GDB 下使用默认设置)也不会 return 到 0x400000,它通常是地址 0x55555554000(但这可能取决于内核)。