linux PIE 程序
2015-07-03 10:47
639 查看
更多详细内容,请参考:
先贴上一段测试程序(ASLR已开):
(1)PIE程序的地址是变化的
(2)本质上,PIE是一个so文件
对比一下同样编译环境下的非PIE程序:
(1)变化的只有栈变量
</pre><pre name="code" class="cpp">http://www.undeadly.org/cgi?action=article&sid=20081117202731
http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html
http://www.cnblogs.com/Xiao_bird/archive/2010/03/01/1675821.html
先贴上一段测试程序(ASLR已开):
#include<stdio.h> int i=0; //编译器会将初始化为0的变量放到 .bss int j=2; //.data void fun() { } void main() { int ii=0; //栈变量 int jj=2; printf("i:[%x]\n",&i); printf("j:[%x]\n",&j); printf("ii:[%x]\n",&ii); printf("jj:[%x]\n",&jj); printf("fun:[%x]\n",fun); printf("mian:[%x]\n",main); }PIE可执行程序:
gcc -fPIE -pie -o x random.c执行结果如下:
(1)PIE程序的地址是变化的
(2)本质上,PIE是一个so文件
对比一下同样编译环境下的非PIE程序:
(1)变化的只有栈变量
相关文章推荐
- Linux下区分物理CPU、逻辑CPU和CPU核数
- 论 __lookup_machine_type的消失(Linux-3.0 ARMv7)
- Linux中tail命令使用
- Linux 命令 sudo
- Linux内核编译测试
- linux more和less的用法
- 经验分享:linux 下 制作PHP扩展出现的问题 Module compiled with module API=20090626
- Linux 服务器安全技巧
- Linux目录结构
- Linux 引导 windows 后 删除 Linux 分区,出现 Grub解决办法
- [linux] ping服务器脚本
- Centos6单服务器安装配置FastDFS
- Linux监控程序-----程序自动重启方法
- Linux系统有7个运行级别(runlevel)
- Linux下查看文件和文件夹大小
- linux下内存调试工具——valgrind
- linux kernel 打印函数指针对应的函数名
- 《Linux开发环境搭建四》Ubuntu10.04中搭建Qt开发环境
- CentOS下为xxx用户添加sudo 权限
- Linux 系统中用户切换