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提供的...