随笔分类 - 固件Firmware
固件入门和仿真运行(预计是一个资料搬运整合)
摘要:当试图找QEMU的源码分析文档来看时↓ 博主的代码水平不是很高,代码的高级写法也不是很清楚,所以就是从一个“菜鸡”的水平大致分析了QEMU源码中部分文件以及部分函数的功能,整理在下面。如果大家发现有任何问题,请指正,不胜感激~ QEMU的部分源码架构 qemu5.2.0 ├─/hw 仿真所有虚拟机中
阅读全文
摘要:前情提要 在学习《家用路由器0day漏洞挖掘技术》一书中修复二进制仿真环境部分的时候,书中采用动态库劫持的方式,重新实现了二进制中仿真失败的函数,并将源文件使用交叉编译链编译为目标架构下的动态库文件。我按照此链接中的方式安装了arm-linux-gnueabi之后,编译生成的so文件无法使用,经过分
阅读全文
摘要:前情提要:现在需要的环境是虚拟机ubuntu中安装qemu仿真环境,使之可以仿真物联网设备的固件们。我由于各种各样的原因,已经搭过好多次了,但依旧每次都会出现新问题[哭泣]。言归正传,在这里我就把我遇到的一些问题总结一下,获得经验值+100。【题目也可以叫做:我与Ubuntu相爱相杀的那些年?】 【
阅读全文
摘要:一、介绍 QEMU在Ubuntu中有两种安装方式: 一种是使用apt-get命令: sudo apt-get install qemu sudo apt-get install qemu-user-static 这种方式安装的QEMU版本一般不是最新的,在Ubuntu16.04下安装的QEMU版本为
阅读全文
摘要:a. 安装 https://www.cnblogs.com/from-zero/p/12545140.html 以上链接中的第一部分,单摘出来,比较方便查找。 b. 使用 参考链接:https://www.cnblogs.com/zjzsky/p/3533532.html
阅读全文
摘要:main函数可以反应程序的主要执行流程,在看源代码的时候通常也会通过main函数了解程序的主要功能,那么在看二进制文件的时候怎么找到程序的“main”函数呢? 一般情况下,系统在编译源代码时,会在main函数之前加一些其它的信息,用于给main的执行准备一下环境之类的。二进制文件的入口一般就是_st
阅读全文
摘要:在这里总结一下使用过的两种IDA远程调试Linux文件的方式: 前提:Windows下安装了IDA,Ubuntu中安装了qemu-user 我的环境是:IDA7.0 & Ubuntu16.04(32bit) (1.1)IDA+linux_server 进入到IDA的安装目录,找到文件夹/dbgsrv
阅读全文
摘要:前情提要:使用qemu仿真固件的二进制文件(httpd)时,如果直接使用 sudo qemu-arm-static ./www/httpd ,肯定会报错:/lib/ld-uClibc.so.0: No such file or directory. 这是由于仿真需要依赖squashfs-root下的
阅读全文
摘要:前言:嵌入式设备上的web服务器主要有:boa、thttpd、mini_httpd、shttpd、lighttpd、goahead、appweb和apache等。 1. httpd httpd是Apache超文本传输协议(HTTP)服务器的主程序。百科 httpd是unix系统(例如Unix,bsd
阅读全文
摘要:A:为什么要获取ARM架构的libc.so.6文件呢? Q:事情是这样的,当我想要使用QEMU仿真运行ARM架构的固件的二进制程序时,提示错误,can't load libc.so.6。 然后我的第一想法是,交叉编译glibc这个库,因为libc.so.6文件在glibc库中。我参照https://
阅读全文
摘要:1. zlib交叉编译步骤 (1)首先搭建arm-linux交叉编译环境,之前的博客中有提到。传送门在此。 (2)下载zlib源码包,官网地址:http://www.zlib.net/,当前版本1.2.11 或者使用命令wget下载,路径/usr/local/src下: sudo wget http
阅读全文
摘要:环境搭建和必要工具: Ps. 在Ubuntu16 (32bit)环境下使用QEMU对ARM架构的固件进行仿真。 1. 获取固件 之前的文章物联网设备固件获取中详细写了如何获取目标固件,一般会获得trx或者bin后缀的固件文件。 2. 使用一些命令或工具对固件进行信息收集和初步分析 ① file命令
阅读全文
摘要:写在前面:在ubuntu下基于QEMU进行固件仿真时,遇到了 can't load library 'libpcre.so.1' 的问题,网上查找相关资料,应该是需要安装一个PCRE库就可以得到这个文件,但是要注意,这个文件是要用在32位的ARM架构的固件下的,所以需要交叉编译。两个注意的点:32b
阅读全文
摘要:参考链接: firmadyne的GitHub项目 Firmadyne固件模拟路由器环境搭建 基于Firmadyne的固件模拟环境搭建 后两个教程在搭建过程上类似,但是各有详略,可以结合起来看。 GitHub项目链接中直接在虚拟机中搭建Firmadyne环境,后两者都是使用了firmware-anal
阅读全文
摘要:QEMU QEMU是纯软件实现的一个虚拟化模拟器,几乎可以模拟任何硬件设备,支持多种架构。 QEMU安装命令 sudo apt-get install qemu #user mode,包含qemu-mips-static,qemu-mipsel-static,qemu-arm-static等 sud
阅读全文
摘要:modify工具(trx格式)+binwalk工具(bin格式) unyaffs和mkyaffs2image工具(img格式) 一些常用的固件分析工具示例:https://www.cnblogs.com/k1two2/p/4760978.html
阅读全文
摘要:固件获取主要有三类方法,一类是直接从官网上找到目标型号的设备固件下载下来即可;一类是使用Telnet或者ssh从目标设备中获取固件;最后一类是需要使用一些硬件工具和软件工具,从开发板上的flash芯片中或者通过UART和JTAG调试接口将固件提取下来。 1)网上下载 D-Link路由器固件 ZOL驱
阅读全文
摘要:(这篇文章是在搭建QEMU环境时,在网上找到了一些教程资料,并在实际操作中遇到的一些问题的整理) 下载Linux内核 下载内核有两种方法,一种是用git直接下载内核代码树,方便后面的内核开发。另一种是直接到内核社区下载稳定版本(详见:https://www.kernel.org/pub/linux/
阅读全文

浙公网安备 33010602011771号