首页
社区
课程
招聘
[求助]二进制重写后的main函数入口点问题
发表于: 2015-12-22 11:28 3917

[求助]二进制重写后的main函数入口点问题

2015-12-22 11:28
3917
最近在做二进制重写的东西,重写之后,新的可执行文件(elf)的main函数入口地址改变了,然后对_start 中对main函数地址的引用也做了相应的修正。但是调试运行程序发现,仍然跳到以前的main函数入口地址执行。因此,请教大家一个问题:elf可执行文件中,main函数的入口地址除了在_start中有引用,还有其他地方有引用或者指定吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 14
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哎,每次都是自问自答,经过分析,发现在符号表中有二进制中所有符号的描述,包括代码段中的函数符号,而在动态加载时,对这些有符号的函数定位,比如:main函数,并不是按照_start中传给_libc_main_start中的main函数地址参数,而是根据符号表中代表main符号表项中的st_value(虚拟内存地址)来确定的。其他很多特殊初始化函数,比如call_gmon_start\frame_dummy\libc_csu_fini\libc_csu_ini。。。。等也是如此。
2015-12-23 20:31
0
雪    币: 324
活跃值: (60)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
原来是这个样子,赞就是致谢了,我跟你一样,慢慢研究研究吧
2015-12-24 08:07
0
游客
登录 | 注册 方可回帖
返回
//