1. 程式人生 > >CentOS6上編譯安裝GDB 8.1版本程記錄(包括安裝peda)

CentOS6上編譯安裝GDB 8.1版本程記錄(包括安裝peda)

下載

我是在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時會有相應的提示,對照其中標定的位置一看就知道了。