学习记录:交叉编译环境配置(buildroot and gdb&gdbserver)【转】

本文转载自:https://blog.csdn.net/zhy025907/article/details/52332528

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 减小

  1.  
    cd gdbserver
  2.  
    mips-linux-strip gdbserver | ls -alh gdbserver

如此完成了简单的环境配置工作

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

猜你喜欢

转载自www.cnblogs.com/zzb-Dream-90Time/p/9626709.html