更換glibc版本進行除錯

2022-06-06 02:21:10 字數 1112 閱讀 8531

pwn題目在進行本地除錯的時候,載入的是本地的libc。

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

這就需要更換本機的glibc版本進行除錯了

這裡用到的是github上的乙個工具 glibc-all-in-one

然後就是生成不同的libc

./update_list #更新最新版本的glibc
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 #可以看到生成的符號鏈結

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
linux中進行glibc原始碼除錯的一種方法

glibc版本公升級

檢視系統glibc庫版本可使用如下命令 strings lib64 libc.so 6 grep glibc centos6.5輸出如下glibc版本列表,從此圖可以看出系統最高支援glibc的2.12版本 ll lib64 libc 可以看到此時的libc.so.6是libc 2.12.so的別名...

linux 檢視glibc版本

glibc是gnu發布的libc庫,也即c執行庫。glibc是linux 系統中最底層的api 應用程式開發介面 幾乎其它任何的執行庫都會倚賴於glibc。glibc除了封裝linux作業系統所提供的系統服務外,它本 身也提供了許多其它一些必要功能服務的實現,主要的如下 1 string,字串處理 ...

glibc檢視版本號

第一種方法 使用命令ldd,檢視可執行程式依賴libc的路徑。由上可知,系統採用的是libc 2.19.so的動態庫,那麼glibc的版本號是2.19。第二種方法 執行libc.so檢視輸出的glibc編譯資訊,裡面包含了版本號。第三種方法 使用命令 ldd version ldd是glibc提供的...