四、固件分析利器-binwalk

在这里插入图片描述
binwalk是一款强大的固件分析工具,它不仅可以用于提取文件系统,也可以用于协助研究人员对固件进行分析和逆向工程。它的开源代码可以在Github中找到(https://github.com/ReFirmLabs/binwalk),这个Github中也有关于binwalk如何安装的指导步骤(https://github.com/ReFirmLabs/binwalk/blob/master/INSTALL.md)。本书中虽然也提供了详细的binwalk安装步骤,但可能由于作者使用的操作系统或binwalk版本较低,如果完全按照书中的指示,binwalk安装过程将会很复杂。实践中,我在最新版本的binwalk安装说明文档末尾发现,在Ubuntu系统中安装binwalk,只需要几条命令就可以:

$ sudo apt install git
$ git clone https://github.com/ReFirmLabs/binwalk.git
$ cd binwalk
$ sudo ./deps.sh
$ sudo python setup.py install

安装完成以后,我们可以找一个路由器固件测试一下。

书中的第三章提供了一个在D-Link官方技术支持网站可以进行下载的固件链接地址:

ftp://ftp2.dlink.com/PRODUCTS/DIR-605L/REVA/DIR-605L_FIRMWARE_1.13.ZIP

下载下来并且拷贝到Ubuntu16.04的虚拟机中,然后对这个压缩包进行解压,再打开命令行终端程序,使用binwalk -e,再加上固件文件作为参数,就可以对这个固件解包了:

test@ubuntu:~$ cd Desktop/
test@ubuntu:~/Desktop$ ls
DIR-605L_FIRMWARE_1.13.ZIP  dir605L_FW_113.bin
test@ubuntu:~/Desktop$ binwalk  -e dir605L_FW_113.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
11280         0x2C10          LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2129920 bytes
563234        0x89822         Squashfs filesystem, big endian, version 2.0, size: 64160 bytes, 7 inodes, blocksize: 65536 bytes, created: 2012-05-25 04:03:47
628788        0x99834         Squashfs filesystem, big endian, version 2.0, size: 2301312 bytes, 495 inodes, blocksize: 65536 bytes, created: 2012-05-25 04:04:00

固件解包后,就可以拿到固件中包含的各种程序,如经常出现漏洞的Web服务器程序(boa):

test@ubuntu:~/.../squashfs-root-0$ ls
bin  etc  mydlink  sbin  usr  web
dev  lib  proc     tmp   var  web-lang
test@ubuntu:~/.../squashfs-root-0$ ls bin/boa
bin/boa

拿到了存在或可能存在漏洞的程序后,我们就可以进一步通过IDA静态分析或动态调试等手段进行漏洞分析了。

当然了,如果需要动态分析,还需要将提取到的程序以调试模式运行起来。然而,虚拟机是x86或x64架构,而路由器一般都采用ARM或MIPS架构,所以我们还应该使用开源的qemu工具,使ARM或MIPS架构的Linux程序在x86或x64架构的系统中运行起来。这也是下一节中我要分享的内容。

本节内容只介绍了binwalk的一个最常用用法,但binwalk的有用功能还很多,感兴趣的读者可以在网络上搜索进行深入学习。binwalk功能虽然强大,支持的固件种类有很多,但也不能全部都指望binwalk,如果遇到binwalk不能解析的固件,可以参考嘶吼的固件逆向分析过程中的工具上固件逆向分析过程中的工具下这两篇文章进行固件解析,也可以通过”ROM助手“之类的软件进行尝试。

本节内容相对比较简单,但也希望能够为你带来收获和启发。谢谢大家。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
云米冰箱固件降级是指将冰箱的固件版本降低到较旧的版本。要进行云米冰箱固件降级,首先需要准备一个适用于该型号的较旧的固件版本文件。然后,按照以下步骤操作: 1. 确保冰箱处于正常开启状态,然后将固件版本文件复制到一个可供冰箱访问的存储设备上,例如U盘。 2. 将存储设备插入到冰箱的USB接口上。 3. 在冰箱的控制面板上找到“设置”或“系统设置”选项,进入系统设置界面。 4. 在系统设置界面中,找到“软件更新”或类似的选项,点击进入。 5. 在软件更新界面中,选择“固件更新”或类似的选项。 6. 冰箱会自动检测到存储设备上的固件版本文件,在屏幕上显示相关信息。 7. 确认显示的固件版本文件是想要降级的较旧版本,然后点击“开始更新”或类似的选项。 8. 系统会开始下载并安装较旧的固件版本,这可能需要一些时间。 9. 安装完成后,冰箱会自动重启,然后使用降级后的固件版本运行。 需要注意的是,固件降级可能会影响冰箱的性能和功能,因此在进行降级操作前,建议先了解降级后的固件版本是否适合自己的需求,并对降级操作产生的潜在风险有所了解。同时,确保固件版本文件的来源可靠,以免造成冰箱系统的损坏或数据丢失。如有需要,可在操作前咨询云米冰箱官方支持或专业维修人员的意见和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后知晚觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值