更換glibc版本進行調試


前言

pwn題目在進行本地調試的時候,加載的是本地的libc。

但是我們為了和遠程環境一樣,需要使用不同的libc版本進行調試

這就需要更換本機的glibc版本進行調試了

下載所需要的glibc源碼

這里用到的是github上的一個工具 glibc-all-in-one

可以自動化下載libc

然后就是生成不同的libc

./update_list #更新最新版本的glibc
cat list #查看可下載的glibc
./download glibc #glibc為你想要下載glibc的名字

patchelf

github上的工具 可以修改elf中的ld和libc路徑 patchelf

./bootstrap.sh
./configure
make
sudo make install
make check

生成所需的符號鏈接

需要配置ld 和 libc

cd /lib64  #進入64位的目錄   glibc 32位就 cd /lib
sudo su    #進入root態
ln -s /home/yh/glibc-all-in-one/libs/2.31-0ubuntu9_amd64/ld-2.31.so ./31_0-linux.so.2 
#31代表glibc版本,0代表小版本(單純為了好記)
ls -l #可以看到生成的符號鏈接

更改elf文件的ld和libc

patchelf --set-interpreter /lib64/31_0-linux.so.2    ./bin   
#bin是二進制文件名   第一個參數是ld.so的目錄 bin是二進制文件
patchelf --set-rpath  /home/xx/glibc-all-in-one/libs/2.31-0ubuntu9_amd64/ ./bin
#  第一個參數是libc所在目錄 bin是二進制文件
ldd ./bin #查看elf的ld和libc

參考鏈接:
[原創]關於不同版本 glibc 更換的一些問題
Linux中進行glibc源碼調試的一種方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM