学习记录:交叉编译环境配置(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 减小
- cd gdbserver
- mips-linux-strip gdbserver | ls -alh gdbserver
如此完成了简单的环境配置工作
已经3点多了,改天完成binwalk和qemu的博客(咖啡果然要少喝,还是神经太敏感)
学习记录:交叉编译环境配置(buildroot and gdb&gdbserver)【转】的更多相关文章
- 【golang学习记录】环境搭建
[golang学习记录]环境搭建 一. 概述 本文是[golang学习记录]系列文章的第一篇,安装Go语言及搭建Go语言开发环境,接下来将详细记录自己学习 go 语言的过程,一方面是为了巩固自己学到的 ...
- Qt5学习笔记(1)-环境配置(win+64bit+VS2013)
Qt5学习笔记(1)-环境配置 工欲善其事必先-不装-所以装软件 久不露面,赶紧打下酱油. 下载 地址:http://download.qt.io/ 这个小网页就可以下载到跟Qt有关的几乎所有大部分东 ...
- 大数据学习之路—环境配置——IP设置(虚拟机修改Ip的内在原因及实现)
一.IP原理 关于IP我的理解, (1)主要去理解IP地址的作用,IP地址包括网络相关部分和主机的相关部分.即:用一段特殊的数据,来标识网络特征和主机的特征. 至于具体的技术实现,日后可以慢慢体会和了 ...
- servlet:从入门到实战学习(1)---全·环境配置
最近公司忙加班学习,学校忙助教工作,博客鸽了好久,后端学习工作过程中学了好多东西,趁着工作之余得空补补博客,算是整理下学习的东西. javaweb的后端研发需要学习的是tomcat+servlet+j ...
- 【cocos 2d-x】VS2013+cocos2d-x3.3Final+Adriod交叉编译环境配置(超详细版)
本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder 微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...
- RaspberryPi交叉编译环境配置-Ubuntu & wiringPi & Qt
1.配置RaspberryPi交叉编译环境: 在开发RaspberryPi Zero的过程中,由于Zero板卡的CPU的处理性能比较弱,因此其编译的性能比较弱,需要将代码在PC电脑上交叉编译完成之后再 ...
- JMeter学习-038-JMeter Linux 环境配置
1.1.下载 Download URL:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.0.tg ...
- MT7688交叉编译环境配置
在ubuntu下设置MT7688交叉编译环境,用于编译mt7688下使用的程序 1.首先在vmware下安装ubuntu64位,由于交叉编译工具需要64位系统,此次安装的是ubuntu14 2.在ub ...
- Groovy学习记录-------Groovy安装/配置
1.Groovy SDK下载 Groovy SDK官网下载地址: http://www.groovy-lang.org/download.html 每个版本有五个选项可供下载,依次为: binary ...
随机推荐
- 170331、58到家MQ如何快速实现流量削峰填谷
问:为什么会有本文? 答:上一篇文章<到底什么时候该使用MQ?>引起了广泛的讨论,有朋友回复说,MQ的还有一个典型应用场景是缓冲流量,削峰填谷,本文将简单介绍下,MQ要实现什么细节,才能缓 ...
- Python--进阶处理3
# ===================第三章:数字日期和时间==================== # ---------------------数字的四舍五入----------------- ...
- wxshop_my移动端前端开发项目
**************************************************************************************************** ...
- 华为交换机忘记console的密码,怎么恢复出厂设置
第一步:一般情况下由于密码忘记我们会被阻挡在交换机telnet远程管理界面之外. 第二步:虽然可以尝试console线连接交换机的控制接口,但是很多时候这个密码也被网络管理员进行了设置,不巧的是如果这 ...
- python 递归深度优先搜索与广度优先搜索算法模拟实现
一.递归原理小案例分析 (1)# 概述 递归:即一个函数调用了自身,即实现了递归 凡是循环能做到的事,递归一般都能做到! (2)# 写递归的过程 1.写出临界条件2.找出这一次和上一次关系3.假设当前 ...
- Linux(5)- MariaDB、mysql主从复制、初识redis
一.MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可. 开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL ...
- docker部署Jenkins,以及在Jenkins中使用宿主机的docker/docker-compose命令
使用最新的官方镜像jenkins/jenkins 第一次使用的docker部署jenkins的时候,出现了两个问题: 1.因为用户权限问题挂载/home/jenkins/data到/var/jenki ...
- Apache http server linux 安装过程说明
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sundenskyqq/article/details/24733923 PS:Apache http ...
- linux内核介绍
linux系统可以分为:包括用户空间和内核空间两个部分. 现代cpu通常实现了不同的工作模式,以ARM为例,实现了7种工作模式: 用户模式.快速中断.外部中断.管理模式.数据访问中止.系统模式.未定义 ...
- Springboot 日志管理配置logback-spring.xml
几种常见的日志 Log4j:是最早的日志框架,是apach旗下的,可以单独使用,也可配合日志框架JCL使用: Log4j2:apach旗下的关于log4j的升级版: Logback:是基于slf4j接 ...