小Pwn手杂谈之如何搜索下载libc以及其对应的ld文件
前言
本文的完成离不开tw11ty师傅的帮助,在此深表感谢
推荐使用下面的网址https://launchpad.net/ubuntu/focal/amd64/libc6
网站页面如下:
如何搜索:
我们需要使用URL来直接进行版本的搜索https://launchpad.net/ubuntu/版本/amd64/libc6
我们只需要修改上面的 版本
就可以替换对不同版本的libc进行查找
下面是不同的版本名称
也就是我们分别将 版本
修改为 :plucky
oracular
noble
等就可以查到对应的Ubuntu版本所使用的历史libc版本
下面使用 Ubuntu20
版本来举例
比如我们想要找一个glibc版本为2.31的glibc
那么2.31的glibc应该是对应的Ubuntu20版本
那么我们就将版本修改为 focal
也就是URL修改为(注意这里focal必须全部小写)https://launchpad.net/ubuntu/focal/amd64/libc6
然后就会看到不同的glibc版本,选择我们需要的版本,点击进入
这里我们使用 2.31-0ubuntu9.15
来举例
进入后我们点击右侧的deb文件下载
下载之后,我们放入自己的Ubuntu虚拟机中,使用dpkg -X
指令来解压这个deb文件
具体解压指令如下:
1 |
|
解压之后进入libc-2.31
文件夹,里面有lib
文件夹,进入lib
文件夹看见x86_64-linux-gnu
文件夹,再次进入其中就可以看见一大堆文件
然后就可以看到里面两个绿绿的东西就是我们需要的ld文件和libc文件,后续就是使用patchlf工具来跟换libc,这里不过多介绍
我们在做一些题目的时候往往只有libc文件,没有对应的ld文件,那么我们该如何快速知道这个libc文件是什么版本的呢?
下面介绍一种方法
通过libc文件来查找libc版本
1 |
|
如下图所示
所以我们就可以知道这个libc.so.6的版本是Ubuntu GLIBC 2.31-0ubuntu9.15