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

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

首先获取不同版本的glibc

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

image-20200709155150165

image-20200709155255481

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

image-20200709155411547

接下安装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查看是否修改成功

image-20200709161332946

另外补充一点

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

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

屏幕快照 2020-07-09 16.18.15

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

棂星

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值