glibc-all-in-one 下载后 Failed to download package 怎么办
0x00 起因
在做 LitCTF 2024 heap-2.27
的时候,由于这个题是一个堆题,题目给了 libc 文件,打算先通过 glibc-all-in-one
得到对应的 ld 文件。
strings libc-2.27.so | grep 'ubuntu' |
对应 glibc 版本为:2.27-3ubuntu1.6_amd64
0x01 下载失败
但是当我正想输入
./download 2.27-3ubuntu1.6_amd64 |
来下载时,得到的结果却是:
Getting 2.27-3ubuntu1.6_amd64 |
一开始以为是代理的问题,关掉了代理之后还是这样。于是我就点开链接看了一下,发现:貌似是镜像挂掉了,那只能手动下载安装了,我在网络上搜寻到一篇有讲到关于手动下载glibc的文章
其中提到了 如果
/glibc-all-in-one/list
中没有所需的 glibc,还可以手动下载,我的情况是下载一直不成功,所以现在来尝试手动下载,进入文章中的网站
往下滑即可看到我们想要的版本,点击。
进去之后是这样一个页面,在 Builds
这一栏选择自己想要的架构我需要的是
amd64
架构的,所以点击 amd64
:点开之后在
Binary
这一栏中寻找。到這一步都是跟那個网站中讲的是一样的,但是下载文件这里被他摆了一道,这个作者说的是下载这个文件但是我在
Binary
这一栏中下载完了之后继续跟着他的步骤走得不到想要的 libc 和 ld 文件:按照那篇文章中的做法,接下来是放到
/glibc-all-in-one/debs/
中
./extract debs/libc6-dbg_2.27-3ubuntu1.6_amd64.deb libs |
0x02 下错东西了?
但是我得到的结果却与平常直接通过 glibc-all-in-one
下载的不一样,在 extract
之后,我的 /glibc-all-in-one/libs
是这样的:正常来说应该像 2.23 那样是一个正常的文件夹,但是 2.27 却分成了两个文件夹,当我跟进到最里面时:
发现正常有 libc 和 ld 文件,但当我把这两个文件 patch 上去之后程序竟然无法运行了。
0x03 解决
直接说解决办法吧,要下载的文件应该是 libc6 2.27-3ubuntu1.6
才对:下载之后还是同样的步骤,放到
/glibc-all-in-one/debs/
,然后运行 ./extract debs/libc6-dbg_2.27-3ubuntu1.6_amd64.deb libs
即可得到想要的结果:里面的 ld 和 libc 文件都是正常能用的。