提取iot设备固件的思路

常用的提取方法

  1. 官网或者联系售后获取固件升级包
  2. 在线抓包,获取升级地址,以此来拿到固件升级包
  3. 逆向升级软件,软件内置解包和通讯算法
  4. 利用调试工具从硬件调试接口(JTAG/SWD)提取固件
  5. 拆卸Flash,用编程器或编程夹读取固件
  6. 用硬件电路的调试串口和固件的boot loader获取固件
  7. 通过利用网页和通讯漏洞获取固件敏感信息
  8. 从硬件串口获取系统权限后,用tar、nc、dd、echo、vi等命令提取

关于串口 uboot 提取固件详解

串口 uboot 提取固件流程:

  1. 获取flsah固件信息
  2. 用md命令提取固件信息
  3. 记录串口输出信息
  4. 分析输出信息,获取固件

md有什么作用?显示内存,能够把内存显示出来。这就有点意思了。发现只要是Nor flash,md可以把Nor flash的内容显示出来(因为nor flash可以通过CPU直接寻址),这就相当于md命令可以提取固件。但md命令是需要知道起始地址和长度的,知道起始地址和长度就可以把固件提取出来。怎么知道起始地址和命令?我查看了更多的命令的信息,结果发现bdinfo和flinfo可以查看到flash起始地址和容量。如果还是找不到的话就重启一下,重启时不要打断,看它会不会打印更多flash地址分布信息,通过这些信息基本就能找到起始地址把固件提取出来了。

第一步,获取flash的存储信息,它这个flash有多大、什么型号的、CPU访问它的地址区间是什么?第二步,用md命令提取固件信息。第三步,记录下来。第四步,分析输出信息,获取固件。

uboot 提取固件的难度:Level 2 

先用特殊命令从Flash读固件到内存,再用md命令读取内存中的文件

命令格式:

# md 起始地址 长度

前提:

  1. 用了 Nor Flash 和 nand flash
  2. 没有用 TF 卡、CF卡、硬盘等硬件
  3. 没有禁用 md 命令

Level2级别是Nand flash里有其他文件系统,这里有一个命令先把nand flash读到内存,然后用md把内存读出来,这个简单的思路就可以搞定了。 

uboot 命令: 获取 flash 中固件的存放地址信息命令如下:

                      printenv 、flinfo、ubifsls、iminfo、bdinfo、sf probe、base等

uboot 命令:读取 flash 中固件内容到内存的命令集合如下:

                     mtdparts、default、loada、cp、sf read、ext4load、fatload

uboot 命令:读取内存的命令集合如下:

                     md、md64、md.b、md.w、md.l、mm

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值