完全用 AI 开发了一个应用:FakeEsptool
去年的时候,感觉自己对乐鑫的芯片加密细节并不是很熟悉。特别是像针对每个设备不同的预设工厂 NVS 加密数据如何烧录,就没有一个清晰的思路。所以,就想着,我能做一个程序来欺骗 esptool.py 让它以为我是芯片,就可以分析出具体的细节。想法虽好,但实际上是一个鸡生蛋、蛋生鸡的问题。也得通过真实设备的逆向才能完善这个程序设计。
上个月的时候,无意中薅到 Mimo 的一个月 Pro 套餐,简单测试(分析历史项目代码)后,就开工了。
一开始的尝试是一个失败的或者说失控的 AI 开发。Agents 根本就无法理解完整的需求和细节。所以,先分拆需求。完成一个简单的版本,只实现一个纯 C 的 Win32 GUI 串口通讯框架程序 SerialEcho 用于后期开发。基本上实现了 Win32 串口框架和协议日志 Dump 界面。
然后,再开始真正的开发。采用的方式是文档先行。先用需求文档设计好界面功能,再用协议文档约定好实现细节。本来协议是准备从官方文档扩展而来。但实际上 esptool 官方协议文档完全不足以覆盖 Fake 开发的细节内容。于是,采用逆向烧录器端的代码实现,用 AI 反向推理协议和实现细节,再辅以逻辑分析仪对真实协议数据抓包来校正。
前期的程序框架开发和测试避免了后期开发陷入的复杂性问题。只要能把问题抽象到基本框架代码上重现,就不需要在后面负责架构上去定位问题和解决。
当然,因为 FakeEsptool 本身就是为了逆向而开发的工具,天然的设计了足够强壮的协议通讯日志系统。有了逻辑分析仪抓包的数据,AI 可以很轻松的找到问题所在,人工复现这一流程,通常是很痛苦的体力活。还需要足够的细心。。。
花了大半个月时间和上百亿 Credits 后,第一个版本终于完成了。这也只是一个不涉及到加密的基础模拟版本,至少可以欺骗 esptool.py 和 idf.py flash 了。
而原本项目立项的初衷,还是需要有足够的芯片来逆向加密烧录的通讯。
发表评论