Linux应用程序地址布局如下图所示,由于使用的虚拟地址,所以Linux应用程序的起始地址都是相同且固定的。因为它们使用了相同的链接地址。
查看一个程序的地址布局使用cat /proc/pid(程序进程号)/maps
上图分析:
1.代码段具有可读可执行(rx)权限,我们的应用程序是addr,所以根据分析,它的地址为0x08048000-0x08049000
2.接下来就是数据段。0x08049000-0x0804a000。
利用reedelf -S 程序名 可以分析数据段的具体地址。