CTF中關於pwn題如何加載目標libc的方法


問題:在做pwn題的過程中,我們經常會遇到題目提供libc,但是本地調試的時候加載的是本地libc。

解決方法:

方法1:

可以用添加環境變量的方法,如下:

  

export LD_LIBRARY_PATH=`pwd` #當前目錄為加載目錄
export LD_PRELOAD=你的libc #加載本地pwn題目下的libc

最后不用了在:unset LD_PRELOAD #調試完記得刪除環境變量

 

但是這個方法在ubuntu為64位系統而調試程序為32位程序時會導致libc無法加載的情況,如圖

這是在我本地調試發生的情況,而64位程序就可以加載。

方法2:

個人更偏向於這個方法,即寫exp調試時,加載本地程序使用

io = process(['./bin'],env={"LD_PRELOAD":"./libc-2.23.so"})

來加載,其中['./bin']替換為你需要調試的二進制文件名,"./libc-2.23.so"替換成你需要加載的目標libc,這樣本地調試就可以通過目標libc進行了。


免責聲明!

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



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