物联网设备固件获取

固件获取主要有三类方法,一类是直接从官网上找到目标型号的设备固件下载下来便可;一类是使用Telnet或者ssh从目标设备中获取固件;最后一类是须要使用一些硬件工具和软件工具,从开发板上的flash芯片中或者经过UART和JTAG调试接口将固件提取下来。php

 

1)网上下载

D-Link路由器固件      ZOL驱动下载网站上也能够找到其余品牌路由器的固件,点击连接html

TP-Link路由器固件linux

华硕ASUS路由器固件(输入产品型号,找到固件下载便可)      eg.RT-AC88Ugit

腾达Tenda路由器固件(输入产品型号)      eg.AC23github

小米路由器固件(ROM)编程

小蚁智能摄像头固件(可是这个下载下来不晓得文件是什么格式)服务器

美国网件NETGEAR设备固件(输入产品型号,下载压缩包格式,其中是内核和根文件)   这个连接也可网络

 

下载获得的固件包通常是.bin格式,也有.trx格式:ssh

.bin files are for flashing from a stock firmware. .trx files are for flashing from OpenWrt.  bin后缀文件通常为十六进制经过刷写BIOS的工具来烧录芯片经常使用的格式,bin文件是直接能够烧到固件里面执行的;bin文件是从硬盘启动所须要的,会添加相应的文件系统头,trx是flash启动的,要把头去掉,因此trx会比bin小些;通常说来,trx的固件是通用的版本,bin是为一些设备支持提供的文件,使它符合一些设备的特性。工具

.bin格式转化为.trx格式

 

在查找资料过程当中,还接触到了Openwrt这个名词:

Openwrt是嵌入式设备上运行的linux系统。OpenWrt 的文件系统是可写的,开发者无需在每一次修改后从新编译,令它更像一个小型的 Linux 电脑系统,也加快了开发速度。
不管是 ARM, PowerPC 或 MIPS 的处理器,都有很好的支持。而且附带3000左右的软件包,用户能够方便的自定义功能来制做固件,也能够方便的移植各种功能到openwrt下。

相关资料:

openwrt是什么_openwrt有什么用从零开始编译OpenWrt固件openwrt编译入门(绝对详细版)

 

2)远程登陆获取固件

前提条件是有目标物联网设备,而且能正确联网。

这里使用几个工具,来对目标设备上的固件进行下载。①PuTTY,②WinSCP

PuTTY工具使用ssh协议登陆目标设备服务器,并将固件文件复制到/tmp文件夹;

WinSCP工具登陆目标设备后,可将/tmp中的固件下载到本地硬盘中。

参考(详细步骤):https://jingyan.baidu.com/article/870c6fc31357ebb03fe4bedd.html

 

3)硬件提取

在网络上找不到目标固件资源的状况下,能够选择从硬件下手,提取固件。通常比较经常使用的是下边两种:

一是从Flash芯片中读取固件:①将导线链接到芯片的引脚,经过飞线链接RT809F编程器,进行编程器软件在线读取固件【该方法比较适合大型的、成本较高、价格昂贵的工控设备,该方法不会对开发板形成破坏】;②把芯片拆焊下来,经过烧录座编程器,离线读取固件【适用于芯片引脚采用点锡丝网焊接在背面,引脚过小或没有暴露出引脚等状况】;案例和参考:连接

二是经过串口或调试接口读取固件:①bootloader读取,芯片和电脑之间经过串口链接通讯,运行mcuisp软件,点击读Flash便可;②须要用到硬件调试工具,通常能够经过下面两类调试接口,把Flash中的数据读取出来:

(1)SWD接口,利用硬件:J-LINK OB或者J-LINK或者ST-LINK;利用软件:J-LINK驱动程序自带的J-FLASH或者ST官网提供的STVP。

(2)JTAG接口,利用硬件:J-LINK;利用软件:J-LINK驱动自带的J-FLASH。

 

串口和调试接口的区别:

能用串口下载程序的单片机,其内部通常都有boot程序的支持,boot程序将要下载的数据经过串口接收到单片机以后调用boot中的flash编程程序,写到内部的flash中;

JTAG是一种标准的调试接口,彻底硬件实现,须要单片机内部有JTAG的硬件调试单元和外面的仿真器进行通讯,既能调试又能下载。

嵌入式开发——串口 UART JTAG TTL 区别和联系

 

固件分析工具:

binwalk – 经过固件文件头来分析文件和文件系统(binwalk使用方法
file – 用来检测是不是有效的文件和文件类型
hexdump --16进制导出工具
strings --跟hexdump相似可是能够以可读的形式展现
lzma --解压LZMA文件

 

主要参考资料:

IOT设备固件介绍及提取

渗透低性能智能设备的关键技术-固件提取

物联网设备测试工具及方法简介

IoT设备固件分析教程之固件是怎么存储的