这几天因为这个问题困扰了我好久,我用的是ubantu16.04
解决因libc版本不同,无法进行pwndbg动态调试,拿到的题目,所需要的是libc 2.34的版本
需要两个工具,分别是glibc-all-in-one和patchelf,前者用于下载libc的版本,后者用于更改题目的环境。
glibc-all-in-one的安装
sudo git clone https://github.com/matrix1001/glibc-all-in-one.git
cd glibc-all-in-one
sudo python3 update_list
[+] Common list has been save to “list”
[+] Old-release list has been save to “old_list”
cat list old_list
同时查看list和old_list的列表,下载用
./download +文件名
如果出现
则需要更换
./download_old + 文件名
来下载
或者出现了其他的列如tar的错误,则需要下载zstd
sudo apt install zstd
patchelf下载
sudo install patchelf
看题目环境进行更换
patchelf –set-interpreter libc版本的绝对路径 ./pwn_5
patchelf –set-rpath 文件夹的绝对路径 ./pwn_5
好,已经可以跑了
或者可以使用
patchelf –replace-needed libc.so.6 你要换的libc的硬路径 ./pwn
patchelf –set-interpreter ld的硬路径 ./pwn
来更改,前提是你下的不是old_list里面的libc版本
请登录后发表评论
注册