QEMU和Firmadyne基本知识|模拟MIPS程序

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)

原文地址:https://www.cnblogs.com/from-zero/p/12367450.html

时间: 2024-10-30 07:00:23

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

赶集网模拟登陆程序PHP

<?php $url = "https://passport.ganji.com/login.php"; //这里改成你自己的账号和密码 $data ="login_username=itbuluoge&login_password=123456"; $result = vpost($url,$data,'cookie'); echo request_url_data("http://www.ganji.com/vip/my_post_lis

Android 并发编程:(一)基础知识 —— 1.2 程序的启动和终结

本章节所有内容皆为原创,如需转载,请注明出处. http://blog.csdn.net/manoel/article/details/38471825 Android是一个多用户,多任务的系统. 允许多个app在同一时刻执行,在多个程序之间切换并不会有明显的延迟. 多任务是由Linux内核负责处理的,而程序的运行基于Linux进程. Linux进程 Linux为每一个用户分配一个唯一的用户ID(User ID),用于区分不同的User. 因为权限的原因,每一个用户只能访问私有资源,没有用户(除

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

注:ubuntu是不支持mips处理器的,只能在x86下安装运行第一步.安装qemu sudo apt-get install qemu qemu-system .执行 qemu-system-mips --version 发现版本太低,因为后面需要更高版本的qemu. 下载http://wiki.qemu-project.org/download/qemu-2.1.2.tar.bz2,然后解压,执行 make ,这一步执行的时间很长,make完成后执行 make install . 如果之前执

编程练习--模拟安装程序时的信息滚屏效果

第一次安装Discuz时,有一个数据库的安装过程,看到会自动滚屏显示的信息,感觉非常好奇,由于当时主要从事后端程序的开发,对前端这些神奇的效果,也只能是欣赏一下子. 现在突然想到要自己来实现这个效果,作为今天的编程练习,实属对当时那个效果的怀念. 先上一个朴素无奇的静态效果图: 点这里查看动态的在线演示效果:http://sandbox.runjs.cn/show/jvl11v0d 核心代码: function install(){ if(message.length>0){ var text

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

在内存中模拟出一副牌,然后模拟洗牌,发牌等动作. 流程是这样的:构建一副牌保存到一个数组中—洗牌—创建玩家—向玩家发牌–输出每个玩家的牌. #include <stdio.h> #include <stdlib.h> #include <time.h> //定义扑克的花色 enum Suit{ heart, spade, diamond, club, joker1, joker2 }; //一副牌的数量 #define CARD_COUNT 54 //定义扑克 type

jpcap 配置方法,问题解决,模拟sniffer程序。(附JAVA程序,jar,dll包等环境)

博文链接 http://www.cnblogs.com/xckk/p/4609444.html 一.   Eclipse环境下安装与配置Jpcap 相关源程序.jpcap jar包,dll包,帮助文档. 已存放在百度云盘,链接如下:http://pan.baidu.com/s/1o6JxcIQ 也可在CSDN下载,链接如下:http://download.csdn.net/detail/hk276506076/8852913 1.下载安装winpcap 2.jpcap官方文件中lib包下,有两个

WinForm学习 --简单的模拟时钟程序

今天学习GDI+,试着想写一个模拟时钟的小程序,原以为很简单实现:但其实还有些复杂,特别是利用三角函数的那部分,让我四处找资料恶补了一下高中数学才算弄清楚,现在就回顾一下这个程序吧. 程序的目的是要模拟出时钟的效果,那首先就是要画出这个时钟的样子.不考虑美观,一个时钟最简单的组成是一个圆形的表盘,三根直线代表的时针.分针和秒针. <img缺失> 看起来很简单吧,但要怎么样画呢?让我们一步一步来吧: 1.画表盘 Graphics g = this.CreateGraphics(); //创建一个

数学知识对写程序有用吗?

对于这个标题,答案我是持肯定态度的,有的人可能说数学一般用于解决一些高端算法,我们测试脚本,哪用得上啊,其实也不然,适当的思考,适当的运用一些数学知识,可以使我们的测试脚本更加的有档次,效率也会更高,或者说也会更加易懂,我们来看一下下面这个方法: 计算从1加到100的值. 估计我们做测试的,很多人第一眼想到的就是用一个for循环,然后sum +=i; 这样就可以得出值了,有的人还可以再加以改善后,搞成一个通用的方法,可以计算任何连续块的值.这些都是OK的,都可以得出结论,但是,换个思路,如果用到

关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。

几乎所有人的第一个程序是从“hello,world”程序开始学习的 #include "mpi.h" #include <stdio.h> int main(int argc, char* argv[]) { int rank, numproces; int namelen; char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_