文档章节

qemu模拟执行固件文件

Cnlouds
 Cnlouds
发布于 2016/05/18 16:32
字数 530
阅读 1165
收藏 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.4K
0
路由器漏洞复现分析第二弹:CNVD-2018-01084

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

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

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

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

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

陈文礼
2018/01/08
0
0
Qemu 简述

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

chambai
2017/11/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

uni app 零基础小白到项目实战

$emit 子组件传给父组件$ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http'const now = Date.now || function() { return new Date().getTime......

达达前端小酒馆
16分钟前
4
0
Tomcat是如何实现异步Servlet的

前言 通过我之前的Tomcat系列文章,相信看我博客的同学对Tomcat应该有一个比较清晰的了解了,在前几篇博客我们讨论了Tomcat在SpringBoot框架中是如何启动的,讨论了Tomcat的内部组件是如何设...

木木匠
41分钟前
16
0
mysql中间件分享(Mysql-prxoy,Atlas,DBProxy,Amoeba,cobar,TDDL)

hello 各位小伙伴大家好,我是小栈君,这期我们分享关于mysql中间件的研究,也就是数据层的读写分离和负载均衡,希望能够在实际的应用中能够帮助到各位小伙伴。 下期我们将继续分享go语言的系...

IT干货栈
今天
10
0
OSChina 周一乱弹 —— 人生,还真是到处是意外

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享lil peep的单曲《High School》 《High School》- lil peep 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
649
10
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部