栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

链接到旧版本的libc以提供更大的应用程序覆盖范围

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

链接到旧版本的libc以提供更大的应用程序覆盖范围

找出可执行文件中的哪些符号正在创建对不需要版本的glibc的依赖。

$ objdump -p myprog...Version References:  required from libc.so.6:    0x09691972 0x00 05 GLIBC_2.3    0x09691a75 0x00 03 GLIBC_2.2.5$ objdump -T myprog | fgrep GLIBC_2.30000000000000000      DF *UND*  0000000000000000  GLIBC_2.3   realpath

查看附属库中的内容,以查看是否可以链接较旧版本的任何符号:

$ objdump -T /lib/libc.so.6 | grep -w realpath0000000000105d90 g    DF .text  0000000000000021 (GLIBC_2.2.5) realpath000000000003e7b0 g    DF .text  00000000000004bf  GLIBC_2.3   realpath

我们很幸运!

GLIBC_2.2.5
您的代码中请求版本:

#include <limits.h>#include <stdlib.h>__asm__(".symver realpath,realpath@GLIBC_2.2.5");int main () {    realpath ("foo", "bar");}

观察到不再需要GLIBC_2.3:

$ objdump -p myprog...Version References:  required from libc.so.6:    0x09691a75 0x00 02 GLIBC_2.2.5$ objdump -T myprog | grep realpath0000000000000000      DF *UND*  0000000000000000  GLIBC_2.2.5 realpath

有关更多信息,请参见http://web.archive.org/web/20160107032111/http://www.trevorpounds.com/blog/?p=103。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400914.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号