【日常记录】解决‘GLIBC_2.34‘ not found,并且gcc制定glibc版本编译

小荣的日常记录


🔥系列专栏:日常记录
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月21日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!


发生了什么

当我兴致勃勃的准备内核提权时,发现glibc版本不对
在这里插入图片描述

真让人生气

第一步,查看靶场glibc版本

ldd --version

在这里插入图片描述

第二步,配置all in one环境

下载glibc-all-in-one

proxychains4 -f /etc/proxychains4.conf git clone https://github.com/matrix1001/glibc-all-in-one.git

在这里插入图片描述
更新列表

cd glibc-all-in-one/
python3 update_list

在这里插入图片描述
看看能安装啥

cat list

只截取了一部分

在这里插入图片描述

第三步,安装配置patchelf

照抄,没有原因

git clone https://github.com/NixOS/patchelf.git
cd patchelf
./bootstrap.sh 
./configure
make
make check
sudo make install

在这里插入图片描述这样的结尾说明一切正常

下载配置特定版本glibc

cat  list
我们这个靶场需要642.28
没有2.28
下个低一个版本的
./download 2.27-3ubuntu1_amd64

在这里插入图片描述

编译

核心,精华
编译方式

gcc -Wl,-rpath='/root/glibc-all-in-one/libs/2.27-3ubuntu1_amd64',-dynamic-linker='/root/glibc-all-in-one/libs/2.27-3ubuntu1_amd64/ld-linux-x86-64.so.2' -s 1.c -o haha

注意这一段,要求是绝对路径
/root/glibc-all-in-one/libs/2.27-3ubuntu1_amd64这个路径和下面这个应该不用说了,注意是ld-linux-x86-64.so.2文件,对应下一个参数
/root/glibc-all-in-one/libs/2.27-3ubuntu1_amd64/ld-linux-x86-64.so.2
剩下的参数和正常的一样

-Wl,-rpath='/root/glibc-all-in-one/libs/2.27-3ubuntu1_amd64',-dynamic-linker='/root/glibc-all-in-one/libs/2.27-3ubuntu1_amd64/ld-linux-x86-64.so.2'

如果需要其他版本的glibc也可以
不过我还没弄好,但是已经可以正常执行了,不会报错了
在这里插入图片描述
应该是sh的调用问题
不过环境已经好了
还有一种简单的方法就是
直接安装一个2018年的kali
什么都解决了
不会有任何问题

### 麒麟 LinuxGLIBC_2.34 未找到解决方案 #### 安装更新的 glibc 版本 对于遇到 `/lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.34' not found` 错误的情况,在麒麟 Linux 或其他基于 Debian 的发行版上,可以通过安装较新的 GNU C Library (glibc) 来解决问题[^1]。 #### 修改软件源配置 为了获取最新版本的库文件,建议修改系统的 APT 软件包管理器源列表。编辑 `/etc/apt/sources.list` 文件并加入如下行以指向支持该版本 glibc 的仓库: ```bash deb http://th.archive.ubuntu.com/ubuntu jammy main universe multiverse restricted ``` 完成上述更改后保存文件,并通过命令刷新本地索引缓存以便能够下载最新的软件包信息: ```bash sudo apt update ``` #### 升级现有 glibc 库 接下来可以尝试升级现有的 glibc 到兼容版本。这一步骤会自动处理依赖关系并将必要的组件一并更新至适当版本: ```bash sudo apt install libc6=2.35-0ubuntu3.1 ``` 注意这里指定的具体版本号可能需要根据实际情况调整;如果不确定应选择哪个确切版本,则可以直接运行 `apt upgrade` 命令让系统自行决定最佳选项。 #### 处理权限不足问题 当编译过程中遭遇类似 “cannot open output file hello: Permission denied” 这样的错误提示时,通常是因为当前用户缺乏足够的写入目标路径的权利。此时应当确保拥有相应目录下的读写权限,或者考虑切换到具有更高权限级别的账户来执行操作[^2]。 例如,可以在终端前加上 sudo 提升权限来进行构建过程: ```bash sudo make ``` 另外也可以改变工作空间的位置为个人家目录下或其他允许自由访问的地方再重新尝试编译链接流程。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间体佐菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值