linux+glibc更换版本,关于Linux下更换不同glibc版本的解决方法

在学习fastbin的有关漏洞利用时,由于本地的glibc版本是2.27的,存在tcache机制所以和单纯fastbin的利用方法不同,因此只能换用版本更低glibc版本。但是更换 ELF 文件的 libc 版本的过程让我十分头疼,最后在大佬的帮助下总算还是成功了,现在记录一下解决方法。

首先获取不同版本的glibc

获取glibc的方法不止一种,可以手动下载也可以借助自动化工具。这里我使用的是https://github.com/matrix1001/glibc-all-in-one

8dc9aabaefabdcf12a5f39de53cec985.png

200643870eef267fbad5912fc7be91b5.png

下载完成后可以在libs文件夹中看到

15cea74892cfb56b3708d98756ce82ad.png

接下安装patchelf

https://github.com/NixOS/patchelf

./bootstrap.sh

./configure

make

sudo make install

make check

在执行./bootstrap.sh时可能会遇到未安装autoreconf的问题,安装一下就好了。

autoreconf: not found

sudo apt-get install autoconf automake libtool

安装完成之后就可以使用patchelf进行更换glibc版本了

patchelf --set-interpreter /home/parallels/Desktop/2.23-0ubuntu11.2_amd64/ld-2.23.so --set-rpath /home/parallels/Desktop/2.23-0ubuntu11.2_amd64 ACTF_2019_message

注意两个参数要换成自己本地对应的路径,–set-interpreter 后面跟的是ld.so的路径,–set-rpath 后面跟的是文件夹路径,最后加上你想要更换glibc版本的程序名称就好了。

用ldd查看是否修改成功

a7c17aaffd66711f46bde51b8cbc7665.png

另外补充一点

如果更换glibc后LibcSearcher找不到对应的libc版本,直接用./add 添加就好了。

./add /home/parallels/Desktop/2.23-0ubuntu11.2_amd64/libc-2.23.so

3f0902dfc90e9daec276a6994223d0ba.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值