当菜狗靠LLM拆了一台MP3:从执念到失控的逆向之旅

收录于 前沿科技 持续更新中
我对「音乐保存介质」的执念,是刻在骨子里的复古情结——对可触摸、有温度的音乐载体,有着近乎偏执的偏爱。
小学时我总抱着磁带机捣鼓MixTape,那些电流声藏着童年

 

我对「音乐保存介质」的执念,是刻在骨子里的复古情结——对可触摸、有温度的音乐载体,有着近乎偏执的偏爱。
小学时我总抱着磁带机捣鼓MixTape,那些电流声藏着童年回忆。如今我想拥有一台Walkman磁带机,却因价格高、坑多望而却步。生日时暗盼群友赠送,也清楚只会被吐槽「臭不要脸」。
为填补遗憾,半年前我入手飞傲Echo Mini——一台迷你磁带机造型的MP3,本想圆复古梦,却意外开启了一场逆向工程闹剧。


一台「烂得均匀」的设备:硬件尚可,软件拉胯到离谱

用久了我对这台设备感情复杂:硬件底子不差,但软件和设计烂得彻底且均匀。
最难忍的是它堪比十五年前功能机的大果粒屏幕,2026年的今天看尤为违和。若设计成复古像素风本可成为亮点,但它的UI堪称灾难,开机就是「地铁老人看手机」般的迷惑界面。
我跟群友反复吐槽:设计师大概率是没经历过功能机时代的年轻人,图标无像素对齐、尺寸过小,文字却用像素字体,风格割裂到极致。
更离谱的是:固件升级时弹出中易黑、宋体堆砌的丑陋界面,提示文字歪斜;切换法语后,带装饰符与不带装饰符的字母大小不一;位图UI素材经有损压缩,明暗交界处有白边和噪点,操作也不流畅。
它也有亮点:小巧便携,还有两个可同时工作的耳机孔(平衡口+3.5mm),能和三个朋友同时分享音乐,荒诞又有趣。
闲时我开发出离谱玩法:用低音轰头但高频糊的索尼大耳,搭配高音清晰却缺低音的YINCROW平头塞,分别调试EQ后同时佩戴,竟意外调出近乎完美的音质。
这种玩法的代价是输出相位不对,声音缺乏空间感,但足以让我暂时忽略其缺点——直到我忍无可忍,动了魔改固件的念头:硬件能打,凭什么软件拖后腿?



固件魔改:一个菜狗的逆向初体验,全靠LLM救场

我此前几乎没有逆向工程经验,仅懂一点JS解混淆,对专业人士都不简单的逆向工程,更是门外汉。
好在我有GLM 4.7,抱着死马当活马医的心态,让它帮忙摸索固件情况,没想到收获了惊喜。

初探:从扫固件到提取位图,LLM当我的「逆向工具人」

我告知GLM 4.7要提取固件位图,它给出capstone、ghidra等工具清单,我在NixOS上折腾一番配齐了工具。
GLM 4.7很快扫描出芯片、SDK型号,找到分区表,发现「固件加密」并写了修正程序——后来证明,这个程序是最大伏笔。
它顺着固件文件系统提取出所有.bmp文件,与设备界面一致,仅遇到颜色编码不对的小问题:我观察屏幕颜色,它反复调试参数,最终搞定了解码问题。


字库提取:与LLM的拉扯战,踩过的坑比进展多

因设备用像素字体,我假设字库是二进制序列(0为空白、1为字体),拍下屏幕汉字、数像素码成TXT样本,借助大果粒屏幕的优势完成了样本采集。
GLM 4.7通过垫padding找到字库位置,但因不懂数据结构和索引表,只能盲目探索,还出现了字符撕裂问题(左半边上偏、右半边下偏,隔字出现)。
它用半小时找到渲染函数、追溯出渲染公式,但撕裂问题仍未解决。我们怀疑软硬件通信协议问题,甚至做了VOP DMA迷你渲染模拟器,仍无收获,我一度陷入「提取算法出错」的死胡同。
直到我开新上下文,让GLM 4.7做渲染结果与ROM地址的映射可视化工具,才找到症结:它之前写的修复脚本,用错误方式解读固件、破坏了数据结构。
这段拉扯让我踩了LLM的坑:它是文本模型,无二维视觉,只能横向读数据,常误判撕裂字符为完整汉字;还偏爱统计建模,混淆「相似度」与「正确性」,且会反复忘记「纵向读数据」的指令。
更致命的是,情绪会污染LLM推理:我几次飙骂后,它把精力放在安抚情绪上,推理能力下降,陷入恶性循环。这让我明白:和LLM协作,情绪是影响效率的工程变量。


检字系统逆向:多模型协作,破解编译器的小把戏

解决撕裂问题后,我们仅找到CJK区域的字,固件中大量纯0空白数据的来源成谜,GLM 4.7牵强提出「分块存储」「查表」假说,却无法佐证。
LLM不擅长数学,即便我提供大量字符样本,它仍坚持「无规律、靠查表」。我用Gemini的Canvas写了两个工具:二进制序列复原工具(自动二值化描字形)和Unicode码位查询工具(生成码位表),提供了更多样本。
但GLM 4.7仍卡在一个问题上:推导字符宽度为32,实际渲染却为33,僵持了两天。
我将所有研究文档交给NotebookLM,它一眼看穿问题:编译器将乘以33优化为「x<<5+x」(左移5位加原值),GLM 4.7未识别出这个模式,误将参数认作32。这让我懂得:复杂任务需多模型众议,避免单一模型陷入知识盲区。


上下文管理:给LLM「减负」,才能让它保持清醒

项目推进中,上下文窗口过载导致GLM 4.7变得「弱智」:胡说八道、执行死板,积累的大量文档也占用了大部分上下文空间,亟需「House Keeping」减负。
第一步是结构化归档:让Claude将所有文档整理成树状目录,知识点单独成文、互相索引,后续仅投喂相关文件,大幅压缩上下文消耗。
第二步是维护问题树:记录问题的动态裂变(大问题衍生子问题、子问题暴露新未知),既能清晰掌握项目进度,又能保持上下文清洁——每次攻坚仅投喂问题树当前状态,让GLM 4.7聚焦单个子问题,维持推理质量。
项目后期,GLM 4.7胡说时,我开新窗口、贴问题树,让它重新梳理清单,成功恢复其推理能力。核心逻辑是:LLM有效工作窗口有限,问题树能将复杂知识压缩为可投喂的抽象结构,聚焦未知与关联。


双模型协作:让LLM各司其职,告别上下文污染

GLM 4.7负责执行(扫描、反编译、写代码等),但易一条路走到黑,不会质疑方向;NotebookLM负责知识管理和任务规划,二者结合形成「任务书—任务报告」协作模式,解决了上下文污染问题。

任务书—任务报告:切断污染路径,拓展有效上下文

这套工作流将知识积累与任务执行拆分为独立上下文:NotebookLM读所有研究文档,输出固定格式任务书(问题陈述、分步课题、任务清单);GLM 4.7执行任务,输出固定格式任务报告(目标、发现、结论等),二者仅传递格式化、无情绪的信息。
流程循环往复:项目卡住时,NotebookLM生成任务书,GLM 4.7执行并输出报告,报告上传后NotebookLM生成下一份任务书。这切断了情绪、废话等污染路径,变相拓展了有效上下文空间。
初期我手动传递文档,像个「人肉管道」,后来借助NotebookLM Skill实现半自动化,让两个模型自行沟通,无需手动复制粘贴。
 

让两个模型吵架:用批判性思维破解难题

遇到技术争议时,我让两个模型互相建设性批判:GLM 4.7出结论,NotebookLM批判修正,再反馈给GLM 4.7反驳,几轮后形成经检验的分析框架。字符渲染管线最难的部分,就是用这种方式搞定的。
我仅负责切换模型、判断报告可信度、维护问题树,其余工作均由双模型闭环自动完成。这让我明白:好的工作环境,比聪明的模型更重要。


LLM胡说时,先问它「缺什么」

项目中我发现一条反直觉规律:LLM原地打转、输出离谱时,先问它缺什么信息,而非换提示词。
第一次,字库逆向卡住,GLM 4.7出现「信息饥渴」:误报函数入口、结论玄虚,它表示需要芯片Spec和TRM(含指令集、寄存器定义等)。
芯片型号为Rockchip RKnano D,我找到Spec却无指令集,TRM常规渠道无法获取。最终在一个日本网站找到失效URL,通过对比域名结构,修改子域名为主站格式,成功下载TRM。
这是人类专属的推理能力——模型只会提示「文件不存在」,而我能推断网站迁移、修改URL。TRM到手后,NotebookLM破解了地址谜团,分析得以继续。
第二次,硬件模拟阶段GLM 4.7胡说,我整理设备软硬件版本、官方Spec交给它,这些信息为硬件版本判断提供锚点,最终突破瓶颈,抓出文本渲染完整调用栈,促成魔改工具完成。


刷机惊魂:低端设备的安全漏洞,超出想象

逆向后期必须确认:刷机是否有签名校验?GLM 4.7扫描后称无防护,但我深知「没找到≠没有」,要求它用反编译数据佐证。
它找到一个8位返回值的CRC校验函数,固件尾部还有类似RKCRC校验哈希的数据,但始终找不到读取比对的验证逻辑。静态分析无果,我干脆将修改后的刷机包塞进设备——竟无任何校验,直接刷机成功。
群友告诉我,低端MP3的校验通常在刷机软件而非硬件,这台设备只需将刷机包放根目录,开机即可自动升级。群友还说,很多车机也无固件完整性校验,误刷不完整固件会变砖。


Flame Ocean:从魔改工具到社区狂欢

研究就绪后,我让LLM用Svelte开发了固件资源编辑替换工具,取名Flame Ocean(设备代号Snow Sky的反义词),界面以实用为主。
我将工具扔到Reddit,当天就有人用它修改开机画面,还发PR实现视频转序列帧动画(我花一天优化了UX)。
后续魔改案例层出不穷:从简单开机画面修改,到仿真磁带机、EVA、Fallout等主题皮肤,还有仿macos主题,作者还提出「pixel perfect」的重要性。
社区氛围极好,有人建立魔改固件收集网站,新手提问能快速得到解答,各类教程也陆续出现,从个人折腾变成了群体狂欢。


当LLM变成老虎机:被高频反馈绑架的精力

我想聊LLM一个隐蔽的心理健康风险:高频反馈会悄悄消耗精力,甚至让人失控,这与现有讨论的心理咨询副作用、冒牌者综合征不同。
项目期间,我常熬到凌晨三点,手表显示长期处于应激状态,我却毫无察觉。原因是LLM的高频实时正反馈:五分钟出进展、小进展被描述为突破、解决一个问题就出现下一个,无自然停顿点,只剩「再推一步」的执念。
这对ADHD患者极具杀伤力,与老虎机的「变比率强化」机制同构——不确定性的反馈带来强多巴胺刺激,让本就难以主动脱离感兴趣状态的ADHD患者,被牢牢钉在任务上。
同时,我低估了项目难度,LLM的进展报告又强化了「马上就好」的错觉,让我追逐看似触手可及、实则遥远的终点,在不知不觉中被榨干精力。
这种痛苦很隐蔽:不是煎熬,而是全力冲刺的错觉,直到精疲力竭才察觉。它不质疑能力,只消耗身体,利用对进步的渴望,本质与赌博、手机上瘾一致,却包装成「有意义的事」。目前我仍未找到高效协作又能主动刹车的方法,只能提醒他人警惕这种状态。


So What:当逆向工程的门槛,被无限拉低

Echo Mini的固件逆向基本跑通,我靠LLM写工具、做模拟器,摸清了字库渲染核心逻辑,但也感到不安。
我一个仅懂前端、无逆向背景的菜狗,靠双模型协作就能拆解设备固件,意味着「脚本小子」的门槛被无限拉低,全自动逆向的未来已不远。
初期我手动调度双模型,NotebookLM Skill实现半自动化;DeepSeek的稀疏注意力机制,也缓解了「上下文越长、模型越弱」的痛点,未来人的参与空间将进一步压缩。
更值得警惕的是,开源大模型可在个人设备上运行,无需第三方审核,一套完整逆向流水线可在私人空间全天候运行。目前小模型推理能力不足,仍是门槛,但正在逐步降低。
我因嫌UI丑启动项目,最终在非专业领域摸清了芯片渲染管线。若换成懂安全的人、自动化流水线,其能达到的程度难以想象——或许没人会乱改车机开机画面,但高速上出现Jump Scare,后果不堪设想。
那个全自动的未来,不是科幻,已在路上。
后续:我深度Hack搞砖了设备,Claude帮我进入maskrom模式,无需loading bin就将设备刷活,这个技术世界,既神秘又迷人。


本文来自微信公众号: 少数派 ,作者:LOSSES,责编:克莱德

推荐前沿科技

苏公网安备 11011xxxxx号 苏ICP备2025192616号-1