文档章节

qemu模拟执行固件文件

Cnlouds
 Cnlouds
发布于 2016/05/18 16:32
字数 530
阅读 957
收藏 3

转眼间近半年多没写文章了,年后来京后换了家公司,工作性质也有了些变化,从以前的杂七杂八干活到如今的杂七杂八...

大面上的一些转变是从服务器/web安全转到了智能硬件/web安全,还是很杂吧,学习的太广,没有非常精通的一门也是个一直以来缺陷。

================正题=============

kali下qemu的安装:

apt-get install qemu 

使用Docker容器进行操作

https://hub.docker.com/r/asmimproved/qemu-mips/

分析某路由器固件包:

binwalk -Me bcrm.bin # -M 递归解压看情况可加可不加 -e 自动化提取

一般固件解压后的文件系统有squashfs和cpio,进入相应的文件夹

root@kali:~/work/openwrt/_brcm/squashfs-root# qemu-mipsel -L . bin/ls
bin/ls: Invalid ELF image for this architecture

# qemu-mipsel qemu user模式模拟运行 -L . 设置库路径为当前目录

一般报上面的这种错误目前我知道的会有两种情况

  1. 老版本的qemu会存在,新版本一般都不存在,参考解决链接:
    http://www.devttys0.com/2011/12/qemu-vs-sstrip/ 
  2. 文件的打开方式不正确,使用了错误的程序执行了ELF文件

针对第2种的解决方法及常识:

# 使用file识别当前文件的格式

# 识别为:ARM格式的ELF文件
root@kali:~/work/openwrt/_brcm/squashfs-root# file bin/busybox 
bin/busybox: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, stripped

# 识别为:MIPS格式的ELF文件
root@kali:~/work/openwrt/_openwrt-we800g-squashfs.bin.extracted/squashfs-root# file bin/busybox 
bin/busybox: ELF 32-bit LSB executable, MIPS, MIPS32 version 1, dynamically linked, interpreter /lib/ld-uClibc.so.0, corrupted section header size

依据上面类型使用不同的qemu程式模拟即可

root@kali:~/work/openwrt/_brcm/squashfs-root# qemu-arm -L . bin/ls
bin  etc  opt  proc  readonly  sbin  usr

先写这些,后续遇到问题再补充,至于漏洞挖掘的慢慢来。

期待各位同道中人交流~

最后弹弹弹~算漏洞么?其实也不算,仅限部分Firefox ESR版本触发 。

 

© 著作权归作者所有

共有 人打赏支持
Cnlouds
粉丝 13
博文 95
码字总数 56136
作品 0
海淀
程序员
私信 提问
使用 QEMU 进行跨平台开发

虚拟化的一个优势就是扩展了计算硬件的功能,可允许一台计算机(主机)通过运行多个客户 操作系统实现多个角色。然而当今很多流行的虚拟化工具在体系结构上还有所限制 — 只允许在同一架构下...

小编辑
2010/03/30
2.2K
0
路由器漏洞复现分析第二弹:CNVD-2018-01084

  *本文原创作者:kczwa1,本文属FreeBuf原创奖励计划,未经许可禁止转载      感谢基友zBetweener一直与我讨论此次分析中遇到的各种问题,没有他的帮助我无法完成此文。      1月...

FreeBuf
02/21
0
0
路由器固件安全分析技术(一)

前言 本文可作为路由器安全的入门学习教程,一起学习从零基础从搭建环境开始入门路由器固件安全分析的技术。 搭建环境篇 演示系统:debian 3.16.0-4-686-pae 本篇重在演示路由器固件分析及运...

广岛秋泽
2017/06/24
0
0
从零开始手敲次世代游戏引擎(Android特别篇)-2

在从零开始手敲次世代游戏引擎(Android特别篇)-1当中我们构建了一个基于docker的Android开发环境,并且实现了我们引擎代码的交叉编译。为了验证我们编译出的程序是否能够在Android设备上正...

陈文礼
01/08
0
0
Qemu 简述

Qemu 架构 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出...

chambai
2017/11/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

中国龙-扬科
22分钟前
2
0
使用vuex的state状态对象的5种方式

vuex是一个专门为vue.js设计的状态管理模式,并且也可以使用devtools进行调试。 下面给大家来贴一下我的vuex的结构 下面是store文件夹下的state.js和index.js内容 //state.jsconst state =...

peakedness丶
26分钟前
1
0
NetCore MVC Demo

地址:http://114.116.9.72:5411

whltian
33分钟前
1
0
Netty handle方法周期 (四)

写了一个练习之后,发现自定义的助手类每次肯定是必须的,对于不同的业务逻辑需求,会写相对应的逻辑 最简单的查看Handle生命周期的方式,就是重写上级方法,看名字差不多应该可以知道方法的作用 ...

_大侠__
38分钟前
7
0
vue主动刷新页面及列表数据删除后的刷新实例

1.场景 在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求。 2.遇到的问题 1. 用vue-router重新路由到当前页面,页面是不进行刷新的 2.采用window.reload(),或者...

前端小攻略
48分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部