解決pwn題目加載指定libc版本的問題


  因為本地和遠程的libc版本不同,pwn題目調試起來會有影響,所以來記錄一下用patchelf和glibc-all-in-one來解決這個問題過程。

下載工具

下載patchelf
git clone https://github.com/NixOS/patchelf

下載glibc-all-in_one
git clone https://github.com/matrix1001/glibc-all-in-one

glibc-all-in_one

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

  更多說明請進入github查看:https://github.com/matrix1001/glibc-all-in-one

生成所需的符號鏈接

$ cd /lib64  #進入64位的目錄   glibc 32位就 cd /lib
$ sudo su    #進入root態
$ ln -s /home/bhxdn/glibc-all-in-one/libs/2.32-0ubuntu3_amd64/ld-2.32.so ./32_3-linux.so.2
 #32代表glibc版本,3代表ubuntu后面的數字(單純為了好記)
$ ls -l #可以看到生成的符號鏈接

  第三步鏈接的時候,按照自己安裝的目錄填寫。

更改elf文件的ld和libc

$ patchelf --set-interpreter /lib64/32_3-linux.so.2 ./pwn
$ patchelf --replace-needed libc.so.6 /home/bhxdn/glibc-all-in-one/libs/2.32-0ubuntu3_amd64/libc-2.32.so ./pwn#libc.so.6為需要替換的libc路徑 第二個參數是需要加載的glibc的目錄    pwn 是二進制文件
$ ldd ./bin #查看elf的ld和libc

  找個題目實踐一下

  寫命令的時候,目錄要根據自己電腦是實際目錄進行改寫。

參考文章:

https://blog.csdn.net/qq_41560595/article/details/114597342

https://www.cnblogs.com/z2yh/p/13881605.html

https://github.com/matrix1001/glibc-all-in-one


免責聲明!

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



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