QEMU

QEMU是纯软件实现的一个虚拟化模拟器,几乎可以模拟任何硬件设备,支持多种架构。

QEMU安装命令

sudo apt-get install qemu
#user mode,包含qemu-mips-static,qemu-mipsel-static,qemu-arm-static等
sudo apt-get install qemu-user-static
#system mode,包含qemu-system-mips,qemu-system-mipsel,qemu-system-arm等
sudo apt-get install qemu-system

QEMU运行模式

User Mode(用户模式):User Mode模式下,用户只需要将各种不同平台的处理编译得到的Linux程序放在QEMU虚拟机中运行即可,其他的事情全部由QEMU虚拟机来完成,不需要用户自定义内核和虚拟磁盘等文件。

System Mode(系统模式):System Mode模式下,最明显的特点是用户可以为QEMU虚拟机指定运行的内核或者虚拟硬盘等文件,简单来说系统模式下QEMU虚拟机是可根据用户的要求配置的。

用户模式下模拟命令:qemu-mips(mipsel/arm)-static;系统模式下模拟命令:qemu-system-mips(mipsel/arm)。

———————————————————————————————————————————————

Firmadyne

Firmadyne是固件仿真框架,主要针对家用路由器固件,并不支持所有固件,不能模拟的固件还是需要用QEMU来模拟。

包括以下组件:

  • 为了执行固件指令而修改的内核(MIPS: v2.6.32, ARM: v4.1, v3.10)
  • 用户空间NVRAM库,用于仿真硬件NVRAM外设
  • 用于从固件中提取文件系统和内核的解压器
  • 一个小型控制台用来调试
  • 超过42个供应商的固件支持

还包括以下三个基本的自动化分析:

  • 可访问的网页:该脚本在似乎由Web服务器提供服务的固件映像的文件系统中的每个文件中进行迭代,并根据结果是否符合要求的身份验证来汇总结果。
  • SNMP信息:此脚本不使用凭据将SNMP v2c public和private SNMP v2c社区的内容转储到磁盘。
  • 漏洞检查:该脚本使用Metasploit的漏洞测试60个已知漏洞的存在。此外,它还会检查工具作者发现的14个以前未知的漏洞。

Firmadyne模拟运行固件只需要在配置好后直接运行 firmadyne 目录下的 fat.py 即可。

以上是基本介绍,之后会整理一下Firmadyne在Ubuntu14.04系统下的搭建模拟过程。

参考链接:

路由器漏洞分析系列(1):路由器固件模拟环境搭建(binwalk固件提取,QEMU模拟执行,firmadyne:固件模拟工具,交叉编译:mips-linux-gnu-gcc,gdb MIPS调试)

一步一步PWN路由器之环境搭建(QEMU模拟执行MIPS几种方式+pwndbg调试,firmadyne,mipsrop插件,PleaseROP插件,gdbserver)

QEMU和Firmadyne基本知识|模拟MIPS程序的更多相关文章

  1. 路由器逆向分析------在QEMU MIPS虚拟机上运行MIPS程序(ssh方式)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69652258 在QEMU MIPS虚拟机上运行MIPS程序--SSH方式 有关在u ...

  2. 利用 QEMU USER 模式运行 mips 程序

    摘要 关键字: qemu mips 前述 QEMU是一个处理器模拟软件,可以用来在PC中模拟ARM.MIPS等多种架构的软硬件运行环境.QEMU主要有两种模拟模式: User Mode System模 ...

  3. 路由器逆向分析------QEMU的基本使用方法(MIPS)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69258334 一.QEMU的运行模式 直接摘抄自己<揭秘家用路由器0day漏 ...

  4. [15单片机] STC15F104W开发入门及模拟串口程序

    STC15F104W开发入门及模拟串口程序 Saturday, 31. March 2018 09:42AM - beautifulzzzz 前言 最近找到一款51内核的SOP8封装的8脚单片机STC ...

  5. 代码实现:当我们下载一个试用版软件,没有购买正版的时候,每执行一次就会提醒我们还有多少次使用机会用学过的IO流知识,模拟试用版软件,试用10次机会,执行一次就提示一次您还有几次机会,如果次数到了提示请购买正版

    package com.loaderman.test; import java.io.BufferedReader; import java.io.FileReader; import java.io ...

  6. 打造一款 刷Java 知识的小程序(二)

    学习Java的神器已上线,面向广大Java爱好者! 之前写的一篇:打造一款 刷Java 知识的小程序(一) 一.第二版做了什么? 第一版小程序只具有初级展示功能,知识点都是hardcode在代码里面的 ...

  7. ubuntu12.04下使用qemu模拟mips处理器安装debian

    注:ubuntu是不支持mips处理器的,只能在x86下安装运行第一步.安装qemu sudo apt-get install qemu qemu-system .执行 qemu-system-mip ...

  8. 一个有趣的基于C++的模拟发牌程序

    在内存中模拟出一副牌,然后模拟洗牌,发牌等动作. 流程是这样的:构建一副牌保存到一个数组中—洗牌—创建玩家—向玩家发牌–输出每个玩家的牌. #include <stdio.h> #incl ...

  9. 快餐店运行模拟C++程序源码代写

    某快餐店供应若干种快餐和饮料(5种以上),早晨6:00开始营业,晚上11:00打烊.前一天已经安排了若干工人上班,快餐店的用餐位是固定的,每种食物的成本和销售价格是确定的,每种食物的总量是确定的,储存 ...

随机推荐

  1. c语言查漏补缺

    getchar:执行getchar()函数时,首先从输入缓存区读取字符,直到输入缓存区为空时才等待从键盘继续输入.scanf()之间不要有printf操作. 逗号表达式 a= (++a,1,2),只取 ...

  2. 017、MySQL取第4本季度开始和结束日期

    #取第4本季度开始和结束日期 SELECT QUARTER ( adddate( dy, ) ) QTR, date_add( dy, INTERVAL MONTH ) Q_start, adddat ...

  3. 数据库建模工具pd的使用

  4. 树莓派 Raspberry 软件源更改 看门狗启用

    看门狗无法在pi1上执行,似乎后更高级的pi上面才可用 1.替换脚本 下面脚本请直接复制到终端执行!! 适用于raspbian-stretch(基于Debian9) sudo -s echo -e & ...

  5. HttpClient测试

    导入maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson&l ...

  6. VC 插入excel

    CString ePath,iPath; m_ePath.GetWindowText(ePath); m_iPath.GetWindowText(iPath); _Application app; W ...

  7. PHP数据库连接

    <?php //设置编码格式 header("Content-type:text/html;charset=utf-8"); /** * Created by PhpStor ...

  8. [LeetCode] 933. Number of Recent Calls 最近的调用次数

    Write a class RecentCounter to count recent requests. It has only one method: ping(int t), where t r ...

  9. Codeforces 460C 二分结果+线段树维护

    发现最近碰到好多次二分结果的题目,上次多校也是,被我很机智的快速过了,这个思想确实非常不错.在正面求比较难处理的时候,二分结果再判断是否有效往往柳暗花明. 这个题目给定n个数字的序列,可以操作m次,每 ...

  10. servlet 之 GenericServlet抽象类详解

    GenericSerlvet抽象类源码如下: package javax.servlet; import java.io.IOException; import java.util.Enumerati ...