免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2895 | 回复: 7
打印 上一主题 下一主题

elf可执行文件生成后还能再修改.text段吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-13 18:09 |只看该作者 |倒序浏览
各位大虾,我想自己模拟elf程序的加载器,可是现在的linux装载地址已经随机化,要是的我程序装在地址不是指定的固定地址,text段中的绝对地址需要修改,那还能修改吗?如果能,怎么修改?希望各位高手给予提示,谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-12-13 19:36 |只看该作者
可以改
但是我不知道怎么改

论坛徽章:
0
3 [报告]
发表于 2010-12-14 09:51 |只看该作者
希望知道的大虾,能够给予提示。在此谢谢啦!

论坛徽章:
0
4 [报告]
发表于 2010-12-15 09:57 |只看该作者
怎么没有人回帖呀?难道这里的高手会不知道吗?请大家积极回帖呀!交流一下嘛!

论坛徽章:
2
水瓶座
日期:2013-09-04 15:09:57白羊座
日期:2014-04-17 16:48:13
5 [报告]
发表于 2010-12-15 11:01 |只看该作者
你想问什么我没看明白

不用绝对寻址不就好了?
gcc加-fPIC参数编译

论坛徽章:
0
6 [报告]
发表于 2010-12-15 13:17 |只看该作者
我的意思是已经连接成执行文件的elf文件,并且文件内部的.text段已经产生绝对地址,我的目的是想模拟加载器,在Fedora 10上的加载器在随机装载地址的情况下也能正常执行可执行文件。而我的加载器在加载完后,因为.text段的绝对地址没有改正而不能执行(加载地址已不是可执行文件里规定的固定地址)。前提是生成的elf可执行文件照样带着.text段里的绝对地址就能运行。 不修改生成的可执行文件。

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
7 [报告]
发表于 2010-12-15 13:34 |只看该作者
模拟加载器?理解不能。。。。加载器不是用于动态链接的么?你是想自己写loader?还是写个程序,解析ELF,将各segment载入内存,然后将执行权交给出去?

论坛徽章:
0
8 [报告]
发表于 2010-12-16 10:08 |只看该作者
是啊!我就是解析elf以后把segment载入内存然后交出执行权,可是为什么linux loader加载后就没有问题,我自己加载完后再运行就 segment fault 了。如果把 /proc/sys/kernel/randomize_va_space 的值从2设置为0,也就是禁用随机加载功能,我的loader加载完后就能运行了。所以说我觉得 :如果Fedora 10 能在随机地址空间加载成寻并正常运行,是不是在运行前要把elf文件的section中的绝对地址加以修改。本人已经被搞糊涂了,请高手帮我敲敲脑袋!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP