一块芯片逆向一整夜:Dave Jones 用 Claude Code 还原万用表固件实录
一块单片机里编译好的 124KB 机器码,没有任何源码,能不能还原成干净的纯 C 语言? 按以前的做法,资深逆向工程师带着反汇编器和示波器,至少要抠上一个月。 澳洲做硬件测评的老极客 Dave Jones,最近干了一件极其硬核的事。 他找出一台自己参与设计的 121GW 万用表。 拿电烙铁把塑料外壳切开一个口子,焊上烧录插针,接上电脑。 然后给 Claude Code 扔了一段提示词: 把芯片里的机器码,全部逆向重构成标准的纯 C 语言,再重新编译刷回硬件。 中间没有加钱买高级算力,用的是普通 20 美元的月费账号。 睡了一觉起来,不到 24 小时。 796 个函数,全部重写完成。 重新编译出来的固件刷进万用表,测电压、测电阻、连蓝牙,全部一次跑通。
这到底是怎么搞出来的? 很多人以为大模型做逆向,就是把机器码扔进去,让模型猜源码。 要是真这么干,早就满屏幻觉、连编译都通不过了。 你看它在后台实际干了什么。 Claude Code 先在电脑里给自己配了一套完整的逆向工具链。 有交叉编译器 GCC,有开源逆向工具 Ghidra,还有 Java 运行环境。 万用表芯片里导出的机器码,分成两个部分: 24KB 的自定义引导程序,和 124KB 的万用表主程序。 逆向最大的难点从来不是把机器码翻译成指令。 难点在语义: 代码里调用 0x40011000 这个物理地址,到底是在读数模转换芯片,还是在刷新液晶屏? Dave 把万用表的电路原理图和用户手册喂给了它。 模型一边用 Ghidra 反编译,一边对照原理图和台湾晶宏 HY3131 测量芯片的数据手册找对应关系。 把芯片里的每一个寄存器、每一个物理引脚,全都还原成了人类看得懂的变量名。
接下来才是最绝的地方。 写出来的 C 代码,怎么保证功能跟原来一模一样? 它在电脑里,自己写了一个 STM32 芯片和外围电路的软件模拟器。 整个固件一共拆出 796 个函数。 除了库函数和中断,691 个应用函数全部用纯 C 语言重构。 它给每一个函数配了测试用例,总共跑了 591 轮模拟比对。 在模拟器里,原版机器码跑一遍,新写的 C 代码也跑一遍。 对比寄存器输出、对比内存数据、对比外设写入。 为了防止自己偷懒,它甚至故意往测试用例里塞错误代码,确认测试框架能不能抓出异常。
甚至还顺手修了一个原版代码隐藏的缺陷。 万用表开机有一个 1 毫秒倒计时的启动画面。 原版代码把计数变量放在中断服务程序里累加,主循环在死循环里不停读取这个变量。 但原作者漏写了一个关键的 volatile 关键字。 以前的老编译器可能没问题,但用现代 GCC 编译时,优化器直接把变量缓存到寄存器里了,导致主循环死锁。 AI 在模拟器里抓出了这个时序异常,随手给变量补上了 volatile。
最后重新编译出来的固件,体积只有 90KB。 原版的官方固件是 124KB。 之前社区网友手工逆向出的汇编版本,有 142KB。 体积缩水了近三分之一,代码更紧凑了。
真机实测怎么样? Dave 把重新编译好的固件刷回这台被切开外壳的万用表。 开机,屏幕正常亮起,显示版本号 V2.05。 拿基准源测 10V 直流电压,读数精准。 测 10kΩ 电阻,通过。 读内部温度,26.6 度,跟实验室空调开机后的室温一模一样。 最后测最容易出问题的蓝牙通信: 打开电脑端的配套软件,万用表瞬间被识别,测量数据实时传输过来。 在嵌入式开发里,蓝牙通信能跑通,说明底层的时钟、中断嵌套、状态机和外设协议栈全是对的。
不过,整个过程也有让人哭笑不得的插曲。 在把固件刷回硬件的那一刻,Dave 差点被逼疯。 本来人工往单片机里烧录 90KB 数据,插上烧录器 20 秒就能搞定。 结果这个 AI 严谨过了头。 点下烧录后,它非要反向反编译一遍刚刚编译好的固件,重新校验时钟、重新比对内存对齐。 在终端里足足折腾了 12 分钟,烧掉了上万个计算额度。 Dave 在视频里直翻白眼: 它是不是故意绕远路帮公司消耗用户额度? 而且硬件的物理开关它依然动不了。 遇到切换测量量程的挡位开关,AI 只能在终端里打字求助: 请人类帮我把旋钮拧一下。
但牢骚归牢骚,结果摆在眼前。 以前嵌入式软件的逆向工程,是极少数资深工程师的独门绝技。 不仅要懂汇编、懂芯片架构,还要对着厚厚的数据手册一点点抠时序。 现在一个工程师,花 20 美元账号月费,给一个明确的目标,放手让它自己调工具、搭模拟器、跑闭环测试。 不到 24 小时,一套原本闭源的万用表固件,变成了人人可读、随时可以二次开发的开源 C 源码。 整个软件工程的底层规则,真的彻底变了。
同领域解读 / AI & LLMS
规范引用 / CANONICAL CITATION
一块芯片逆向一整夜:Dave Jones 用 Claude Code 还原万用表固件实录 — 墓碑科技 MUBEITECH(https://mubeitech.com/deep/mb-20261103-3357b3)
导出 / EXPORT
订阅 · SUBSCRIBE
每周一封独立、不受审查的科技与 AI 深度评论,周一发出。带出处,可核查。