固件提取实战(附无损提取方案)

文章目录

  • 1. 写在前面
  • 2. 设备介绍
  • 3. 固件提取
  • 4. 固件分析
  • 5. 固件提取改进
  • 6. 引脚接法


1. 写在前面

固件提取,对博主来讲一直带着一层神秘的面纱,归根结底还是因为博主之前对电路、硬件、嵌入式等等了解比较少(说白了就是菜鸡)。巧不巧,单位实验室里正好有固件提取的设备,为了后续工作的顺利开展,简单研究了一下,并做如下记录。

2. 设备介绍

先上图,下图是目前实验室已有的RT809H编程器。
在这里插入图片描述
RT809H是一种性价比较高,并且比较简单易用的通用编程器,使用的时候,直接通过上图中的USB口连接计算机即可。通过简单验证,直接连接USB线也可以工作,但是最好还是在电源口插上12v的电源。
手头上针对该编程器的配套小工具如下图所示。
在这里插入图片描述
芯片夹(图1),可以用于夹住SOP8的Flash芯片(如图4)。这种芯片夹虽然简单,但是并不好用,首先,这个夹子稍显笨重,面对电路板上薄薄的SOP8,有些力不从心,一不小心就脱落;更加要命的是,SOP8周围可能还布置了很多其它的元器件,导致根本就下不去夹子,完全用不了。
芯片底座(图2),这种底座可以用于SOP8和SOP16的芯片,但是实验室的底座明显偷工减料了,只有8个金属弹片,所以只可以用于SOP8的芯片。细心的朋友可能已经发现了,这种芯片底座更加不靠谱,需要把芯片切下来,放到底座上,然后提取,先抛开是否有熟练的手艺把芯片切割下来,有的测试场景下,根本就不允许破坏被测设备,或者客户不同意切割芯片下来,所以这种芯片底座实用性也不是很好。
既然实验室提供了这种芯片底座,还是说一下简单用法,这种底座的底部背面有竖着两排8针(针对SOP8)或者两排16针(针对SOP16),按照如图3所示的样子,从底部开始插到编程器的接口上即可。注意两点:第一,必须从底下开始插入,不能从顶端;第二,注意SOP芯片的方向,小圆点(见图3)在左上方,小圆点位置代表的是SOP中编号为1的引脚,然后逆时针依次为2、3、4、5、6、7、8,SOP16也是一样的逻辑。

3. 固件提取

正好实验室手边有一个切割好的SOP8芯片,我们就用芯片底座连接RT809H编程器提取一下固件试试看。
首先,按照上面的要求,将SOP8芯片正确地放到芯片底座上,并将芯片底座正确插到RT809H编程器上。然后使用USB线,将RT809H编程器连接到计算机,这个时候编程器的指示灯会亮起来,最好还是把电源也接上,以免供电不稳定。
然后以管理员身份运行计算机上的RT809H程序。
在这里插入图片描述
程序启动后,会显示设备已经通过USB口正常连接,如下图所示。
在这里插入图片描述
点击左上角的“智能识别SmartID”,会弹出如下图所示的对话框,提示选择芯片类型。
在这里插入图片描述
因为我们这里使用的是SOP8的flash,所以选择SPI flash,电压默认是3.3v,我这里没有修改,然后点击确定。
在这里插入图片描述
这时候,就识别了芯片的基本信息,如上图。然后点击左上角第二个按钮“读取Read”。
在这里插入图片描述
如上图所示,编程器已经成功读取了芯片的信息,读取并校验完成后,会自动弹出保存的对话框,将提取的固件内容保存成bin文件。
在这里插入图片描述

4. 固件分析

$ binwalk -Me W25Q32V@SOIC8_20231215_114110.BIN 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$ ./firmwalker.sh ~/Desktop/firmware/_W25Q32V@SOIC8_20231215_114110.BIN.extracted ~/Desktop/firmware/firmwalker_master.txt

在这里插入图片描述
在这里插入图片描述

$ ./fap.py -q qemu-builds/2.5.0/ ~/Downloads/W25Q32V@SOIC8_20231215_114110.BIN

5. 固件提取改进

一开始有些钻牛角尖了,想着怎么改良一下上面的芯片夹,把针弄长一点,让其不再受限于电路板上其它元器件的位置,可是怎么折腾都不理想。偶然之间读到一篇文章中有类似测试钩的工具,貌似可行,只要钩子足够小,就可以连接SOP8的引脚。直接上淘宝搜索一下,发现了有更加牛逼的神器,真的是只有我们想不到的,没有淘宝上买不到的。直接上图。
在这里插入图片描述
如上图所示,这种神器叫“免拆芯片通用测试夹”或者叫“IC引脚夹”,塑料手柄上有个弹簧的小机关,一按的时候,会从透明塑料管子里面伸出来一个两脚的金属夹子,正好可以牢牢夹住SOP8的引脚。果断买了8个,商家还送了16跟公母头的杜邦线。到货后,冒着大雪弄回来一大早在实验室验证可用性。
在这里插入图片描述
上图是查到编程器上的样子,感觉像个八爪鱼,后面再看看怎么优化一下。下图是将CPE拆壳之后,接上测试夹的效果。
在这里插入图片描述
接下来将编程器接入计算机,尝试进行固件提取。
在这里插入图片描述
智能识别SmartID失败,貌似有的引脚没有接好,或者顺序错乱了,仔细检查一下,过着有两个引脚接反了(最后介绍引脚怎么接),调整好后,继续智能识别。
在这里插入图片描述
仍然异常,可能这个CPE的flash引脚有些问题,毕竟这个是别人报废的CPE。更换一个CPE继续测试,顺利读取固件信息,和工具连线都没有问题。
在这里插入图片描述
进行固件提取成功。
在这里插入图片描述

6. 引脚接法

为了便于大家理解,特意花了下面的图,展示SOP8的flash引脚接法。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/285217.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯嵌入式——KEY

CUBE里将这几个引脚配置成GPIO输入模式,再同时选中,配置成上拉,如下图: 同时配置定时器,定时10ms,每10ms扫描一次按键,计算公式:80 000 000 / 80 / 10000 100HZ 10ms,配…

【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! X的平方根 class Soluti…

详解 Jeecg-boot 框架如何配置 elasticsearch

目录 一、下载安装 Elasticsearch 1、 地址:https://www.elastic.co/cn/downloads/elasticsearch 2、下载完成后,解压缩,进入config目录更改配置文件 3、 修改配置完成后,前往bin目录启动el 4、访问:localhost:92…

C# WPF上位机开发(进度条操作)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 软件上面如果一个操作比较缓慢,或者说需要很长的时间,那么这个时候最好添加一个进度条,提示一下当前任务的进展…

Mysql之Specified key was too long; max key length is xx bytes异常

问题原因:mysq索引的字段都太长了 767字节是 MySQL 版本5.6(以及以前版本)中 InnoDB 表的最大索引前缀长度限制,MyISAM 表的长度为1,000字节。在 MySQL 版本5.7及以上版本中,这个限制增加到了3072字节。 如果对 utf8mb4编码的 varchar 字段设…

2023-12-18 最大二叉树、合并二叉树、二叉搜索树中的搜索、验证二叉搜索树

654. 最大二叉树 核心:记住递归三部曲,一般传入的参数的都是题目给好的了!把构造树类似于前序遍历一样就可!就是注意单层递归的逻辑! # Definition for a binary tree node. # class TreeNode: # def __init__(se…

论文阅读——Painter

Images Speak in Images: A Generalist Painter for In-Context Visual Learning GitHub - baaivision/Painter: Painter & SegGPT Series: Vision Foundation Models from BAAI 可以做什么: 输入和输出都是图片,并且不同人物输出的图片格式相同&a…

C# 图解教程 第5版 —— 第19章 枚举器和迭代器

文章目录 19.1 枚举器和可枚举类型19.2 IEnumerator 接口19.3 IEnumerable 接口19.4 泛型枚举接口19.5 迭代器19.5.1 迭代器块19.5.2 使用迭代器来创建枚举器19.5.3 使用迭代器来创建可枚举类型 19.6 常见迭代器模式19.7 产生多个可枚举类型19.8 将迭代器作为属性19.9 迭代器的…

阿里云|人工智能(AI)技术解决方案

函数计算部署Stable Diffusion AI绘画技术解决方案 通过函数计算快速部署Stable Diffusion模型为用户提供快速通过文字生成图片的能力。该方案通过函数计算快速搭建了AIGC的能力,无需管理服务器等基础设施,专注模型的能力即可。该方案具有高效免运维、弹…

Excel小技能:excel如何将数字20231211转化成指定日期格式2023/12/11

给了一串数字20231211,想要转成指定格式的日期格式,发现设置单元格格式为指定日期格式不生效,反而变成很长很长的一串#这个,如图所示: 其实,正确的做法如下: 1)打开数据功能界面&am…

[ CTF ]【天格】战队WriteUp-第七届“强网杯”全国安全挑战赛

第七届“强网杯”全国安全挑战赛 2023.12.16~2023.12.17 文章目录 【Misc】Pyjail ! Its myFILTER !!!easyfuzz谍影重重2.0签到Pyjail ! Its myRevenge !!!server_8F6C72124774022B.py 问卷调查 【Reverse】ezre 【Web】happygame 【强网先锋】石头剪刀布TrieSpeedUpezreez_fmt…

Python 全栈体系【四阶】(七)

第四章 机器学习 六、多项式回归 1. 什么是多项式回归 线性回归适用于数据呈线性分布的回归问题。如果数据样本呈明显非线性分布,线性回归模型就不再适用(下图左),而采用多项式回归可能更好(下图右)。例…