本文转载自: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. Oracle之rman常用命令及维护(51CTO风哥rman课程)

    list 查看数据库备份的信息 查询数据库对应物 list incarnation; list backup summary; 列出当前备份信息及汇总 B是备份 F是全备 A是归档 第三个A是是否有效 ...

  2. session------>防表单重复提交

    方法一:用js控制表单提交--->但是容易在客户端被篡改代码,还是要加的 方法二:session 先给每一个表带上唯一的标志,再把标志存入session 当session中标志和表上标志都不为空 ...

  3. hdu2094—看似拓扑实际上是一道思维题

    HDU2094  产生冠军 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2094 题意:中文题,就不解释了.题意已经非常清楚了. 这道题的看起来像是一 ...

  4. uva656 Optimal Programs

    Optimal Programs As you know, writing programs is often far from being easy. Things become even hard ...

  5. window下的开发环境:常用软件

    window下的开发环境:常用软件 Visio 2010  - 产品设计 xmind        -产品设计 Axure       -产品设计 Edraw max 7.3(破解版)  -产品设计 ...

  6. MySQL对指定字段进行加密(双向加密)

    1:建表 test create table test( name varchar(200), value blob ); 插入数据 使用 ENCODE 加密: ,ENCODE('加密字段值', '钥 ...

  7. volatile变量,java内存模型

    volatile变量提供了最轻量级的同步机制,当一个变量加上volatile修饰时,会具有一下两个特性 https://blog.csdn.net/u011277123/article/details ...

  8. intellij idea 重命名或复制一个项目(不用重启)

    Idea 内无法直接修改Explorer 里文件夹的名称,只能手动改文件夹的名称. 目前找到的最好的方法: 1)重命名一个项目 在Idea 项目关闭状态下,在 Explorer (Windows) / ...

  9. 百度NLP二面

    实验室项目:1.实验室方向 2.用两分钟介绍自己的项目,创新点在哪里 个人项目:     1.自己实现的贝叶斯分类器,目的,怎么做的 2.怎么计算各个分类的先验.(因为我使用的训练预料是每个分类10篇 ...

  10. listview与adapter用法

    Android listview与adapter用法 listview与adapter用法 博客分类: android   一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用 ...