CentOS6上編譯安裝GDB 8.1版本程記錄(包括安裝peda)
阿新 • • 發佈:2019-01-24
下載
我是在CentOS6下首先將gcc升級到8.1後才著手升級gdb的。如果直接採用舊版本的gcc編譯,可能會由於原始碼中出現某些使用了新特性的情況導致中途報錯。升級gcc的過程可以參考我的上一篇文章CentOS6上編譯安裝gcc8.1版本全過程記錄(包括排坑與常見錯誤解決)。下面進入正題:
sudo yum install glibc-devel bison flex texinfo build-essential
wget http://ftp.gnu.org/gnu/gdb/gdb-8.1.tar.xz
tar -xf ./gdb-8.1.tar.xz
cd ./gdb-8.1
如果目標機網路不好,則需要下載gdb原始碼到本地後上傳。
編譯
./configure --prefix=/usr/local/gdb8
配置完成之後就可以開始編譯了,這裡依據目標機配置選定make後的引數。
make -j8
編譯完後進行安裝
sudo make install
至此已將gdb8.1安裝到了/usr/local/gdb8下。
軟連結
先檢視當前gdb的路徑:
which gdb
發現在/usr/bin下。於是先進行備份:
cd /usr/bin
sudo mv ./gdb ./gdb.old
下面連結到新編譯的gdb上:
cd /usr/local/gdb8/bin
sudo ln -s $(pwd)/gdb /usr/bin/gdb
安裝增強工具
peda是肯定要裝的:
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
順便一提,舊版本的gdb可能出現安裝peda後啟動時報錯的情況,這個問題主要是由python不同版本間的語法差異造成的,解決起來也很容易。
1. 先定位到shellcode.py檔案,修改其中字典相關語法:
2. 還是shellcode.py檔案,修改其中版本號獲取程式碼:
3. 修改peda.py中版本號獲取程式碼:
截圖時有部分程式碼忘了截行號,如果出現類似問題,在啟動gdb時會有相應的提示,對照其中標定的位置一看就知道了。