學習記錄:交叉編譯環境配置(buildroot and gdb&gdbserver)

1,背景

因爲參加公司的路由器逆向培訓,首先需要的就是環境的配置準備工作,本文主要介紹的是交叉編譯環境配置和交叉編譯gdb

2,配置交叉編輯環境build root

這裏僅僅是簡單的配置過程,如果需要進一步研究,請移步:https://buildroot.org/docs.html

安裝依賴包,否則會報錯:

apt-get install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev exuberant-ctags g++ texinfo patch vim libtool bc



2.1 下載buildroot 解壓

tar xvf buildroot-2016.08-rc2.tar 




2.2 編譯(提醒:要最大化terminal,否則會分辨率問題會報錯)

因爲:要逆向的路由器爲大端系統,並且爲mips固件,因此編譯使用的是mips32,如下,查看固件中的文件格式



因此使用:

make menuconfig



保持往來良好最後執行:

make

第一次編譯會非常慢,請慢慢喝茶等待,因爲要更新並下載新的版本,

一個小時後,差不多完成

或者提前使用這個命令下載所有源代碼備用:

make source

編譯完成界面如下:



生成的文件爲上述文件夾

但是,我們需要的交叉編譯鏈在這個目錄下:



2.3 將生成的交叉編譯工具,設置爲環境變量(根據自己的sh修改):

vi ~/.zshrc
export PATH=$PATH::/root/routerpwn/tools/buildroot-2016.08-rc2/output/host/usr/bin/
source ~/.zshrc


3,配置交叉編譯GDB&GDBserver

3.1 下載gdb源碼

http://www.gnu.org/software/gdb/download/

下載gz或者是xz的包,這裏下載的是gdb7.11.tar.xz 最新版本

3.2  編譯mips版本的gdb和gdbserver

解壓:

tar xvf gdb-7.11.tar.xz



配置:

./configure --target=mips-linux --host=mips-linux --program-prefix=mips-linux CC=/root/routerpwn/tools/buildroot-2016.08-rc2/output/host/usr/bin/mips-linux-gcc



編譯(爲了移植方便,使用靜態編譯的方法,CXX是因爲依賴g++的原因):

make CFLAGS="-g -O2 -static" CXXFLAGS="-g -O2 -static"

大約一刻鐘左右,編譯完成:


注意上文中紅色部分爲gdbserver的目錄


4,減小gdb 和gdbserver的體積

因爲:路由的空間有限,gdb和gdbserver的空間太大,無法上傳,需要降低gdb和gdbserver的體積


使用strip命令減小gdb和gdbserver的體積



同理將gdbserver 減小

cd gdbserver
mips-linux-strip gdbserver | ls -alh gdbserver


如此完成了簡單的環境配置工作

已經3點多了,改天完成binwalk和qemu的博客(咖啡果然要少喝,還是神經太敏感)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章