本文转载自: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的博客(咖啡果然要少喝,还是神经太敏感)

学习记录:交叉编译环境配置(buildroot and gdb&gdbserver)【转】的更多相关文章

  1. 【golang学习记录】环境搭建

    [golang学习记录]环境搭建 一. 概述 本文是[golang学习记录]系列文章的第一篇,安装Go语言及搭建Go语言开发环境,接下来将详细记录自己学习 go 语言的过程,一方面是为了巩固自己学到的 ...

  2. Qt5学习笔记(1)-环境配置(win+64bit+VS2013)

    Qt5学习笔记(1)-环境配置 工欲善其事必先-不装-所以装软件 久不露面,赶紧打下酱油. 下载 地址:http://download.qt.io/ 这个小网页就可以下载到跟Qt有关的几乎所有大部分东 ...

  3. 大数据学习之路—环境配置——IP设置(虚拟机修改Ip的内在原因及实现)

    一.IP原理 关于IP我的理解, (1)主要去理解IP地址的作用,IP地址包括网络相关部分和主机的相关部分.即:用一段特殊的数据,来标识网络特征和主机的特征. 至于具体的技术实现,日后可以慢慢体会和了 ...

  4. servlet:从入门到实战学习(1)---全·环境配置

    最近公司忙加班学习,学校忙助教工作,博客鸽了好久,后端学习工作过程中学了好多东西,趁着工作之余得空补补博客,算是整理下学习的东西. javaweb的后端研发需要学习的是tomcat+servlet+j ...

  5. 【cocos 2d-x】VS2013+cocos2d-x3.3Final+Adriod交叉编译环境配置(超详细版)

    本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder  微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...

  6. RaspberryPi交叉编译环境配置-Ubuntu & wiringPi & Qt

    1.配置RaspberryPi交叉编译环境: 在开发RaspberryPi Zero的过程中,由于Zero板卡的CPU的处理性能比较弱,因此其编译的性能比较弱,需要将代码在PC电脑上交叉编译完成之后再 ...

  7. JMeter学习-038-JMeter Linux 环境配置

    1.1.下载 Download URL:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.0.tg ...

  8. MT7688交叉编译环境配置

    在ubuntu下设置MT7688交叉编译环境,用于编译mt7688下使用的程序 1.首先在vmware下安装ubuntu64位,由于交叉编译工具需要64位系统,此次安装的是ubuntu14 2.在ub ...

  9. Groovy学习记录-------Groovy安装/配置

    1.Groovy SDK下载 Groovy SDK官网下载地址: http://www.groovy-lang.org/download.html  每个版本有五个选项可供下载,依次为: binary ...

随机推荐

  1. 160415、sql语句sort排序,sort为空的在后面

    按sort排序,sort为空的在后面 select * from 表名 order by (case when sort is null or sort='' then 1 else 0 end),s ...

  2. 各大网站CSS初始化代码集合

    css代码之所以初始化,是因为能尽量减少 各浏览器之间的兼容性问题! 腾讯QQ官网 样式初始化 body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fiel ...

  3. 关于spring的applicationContext.xml配置文件的ref和value之自我想法

    今天在做SSH的一个项目的时候,因为需要定时操作,所以就再sping里面加入了一个quartz的小定时框架,结果在运行时候,发生了一个小bug. Caused by: org.springframew ...

  4. TuShare获取K线数据

    Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们在数据获取 ...

  5. maya布料预设解析

    今天做了一天布料.数值都是自己在那调整.结果发现maya自带预设,基本有些都不用调整,直接预设,效果非常不错.累死累活半天. 下来看看  预设 解析吧 ncloth新布料系统是 Maya 8.0 后新 ...

  6. django迁移:全局、局部

    django迁移:全局.局部 django 数据库迁移(migrate)应该知道的一些事 https://blog.csdn.net/stonesola/article/details/6975861 ...

  7. 从CPU/OS到虚拟机和云计算

      从CPU/OS到虚拟机和云计算  作者:张冬            关于软硬件谁为主导这个话题,套用一句谚语就是三十年河东三十年河西.风水轮流转.软件和硬件一定是相互促进.相互拆台又相互搭台的. ...

  8. View的几个坐标的问题 ,涉及到动画

    event.getX():表示的是触摸的点距离自身左边界的距离  event.getY():表示的是触摸的点距离自身上边界的距离 event.getRawX:表示的是触摸点距离屏幕左边界的距离 eve ...

  9. PAT 1125 Chain the Ropes[一般]

    1125 Chain the Ropes (25 分) Given some segments of rope, you are supposed to chain them into one rop ...

  10. Java权威编码规范

    一.编程规约 (一) 命名规约 1. [强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _nam / __name / $Object / name_  / ...