【产品那些事】固件安全-关于OTA升级包分析

前言

什么是OTA?

OTA(Over-the-Air)是一种通过无线通信网络(如Wi-Fi、蜂窝网络)远程下载和安装设备固件或软件更新的方式。这种方式广泛应用于智能手机、物联网设备、汽车电子等领域。
小米发烧友估计对此并不陌生,线刷、卡刷、各种系统的刷机包,最近的澎湃OS不知道各位米友试着刷了没有。当然还有路由器、汽车,甚至台灯等各种智能家居,都是通过OTA的方式进行升级更新。
这里笔者通过两个固件解压包分析案例,来学习固件安全相关内容。

升级包(固件)的类型和架构

二进制映像(.bin):最常见的固件格式,包含了设备运行所需的所有代码和数据,通常用于路由器、摄像头、物联网设备等。
压缩包(.zip, .tar, .gz, .xz):将多个文件打包并压缩成一个文件。
映像文件(.img):包含整个文件系统映像,通常用于嵌入式设备和操作系统镜像(Linux、Android)。
Intel HEX文件(.hex):一种文本格式的固件文件,常用于微控制器和嵌入式系统。
Motorola S-record文件(.srec, .s19):类似于Intel HEX格式的文本固件文件。
ELF文件(.elf):一种可执行和可链接格式,包含可执行代码和数据段,常用于嵌入式系统开发。
如下所示,服务商会提供多种格式固件,方便客户进行分析
在这里插入图片描述

案例

tp-link路由器升级包

固件下载链接
解压后目录结构如下,当前我们关注的还是bin文件
在这里插入图片描述

怎么解包分析?

这里以.bin格式的固件为例,因为没有明显的文件边界和结构,所以分析起来难度也相对要高些,这里我们使用binwalk来提取和解析内容

binwalk安装及使用
sudo apt-get install binwalk 	// ubuntu
brew install binwalk			// macos
# 识别包含的文件和数据结构
binwalk firmware.bin

在这里插入图片描述

# 递归提取内容
binwalk -Me firmware.bin

在这里插入图片描述
将二进制里面的ubi格式文件提取出来之后

什么是ubi格式文件?
UBI(Unsorted Block Image)是一种用于 NAND 闪存的文件系统,它提供了对闪存的磨损均衡和坏块管理。UBI 文件系统常见于嵌入式设备中,尤其是在需

相关推荐

  1. ubuntu16.04安装vscode那些

    2024-07-17 13:48:03       29 阅读
  2. 关于利率,你需要知道的那些

    2024-07-17 13:48:03       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 13:48:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 13:48:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 13:48:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 13:48:03       69 阅读

热门阅读

  1. Hadoop之/etc目录下各配置文件的作用详解

    2024-07-17 13:48:03       18 阅读
  2. 前端学习常用技术栈

    2024-07-17 13:48:03       23 阅读
  3. Perl语言入门学习

    2024-07-17 13:48:03       21 阅读
  4. 【闲聊】-Perl的基础语法

    2024-07-17 13:48:03       24 阅读
  5. LVS的NAT方式

    2024-07-17 13:48:03       18 阅读
  6. SAP中MIR4使用的BAPI是什么,如何使用?

    2024-07-17 13:48:03       21 阅读
  7. cuda--docker

    2024-07-17 13:48:03       25 阅读
  8. WHAT - 介绍一个不太一样的 UI 组件库 shadcn/ui

    2024-07-17 13:48:03       19 阅读
  9. 从零开始!Jupyter Notebook的安装教程

    2024-07-17 13:48:03       22 阅读
  10. 数仓工具—Hive语法之替换函数和示例

    2024-07-17 13:48:03       19 阅读
  11. 油管吃播鼻祖被流量吞噬的半生

    2024-07-17 13:48:03       23 阅读
  12. ActiViz实战:ActiViz中的自己实现鼠标双击事件

    2024-07-17 13:48:03       28 阅读