我是电视维修技术人员,我发现损坏的固件是我工作的大部分电视出现故障的原因。我想出了一个想法,如果我可以对固件进行逆向工程,我可能会编写一个脚本来分析固件映像并确定它是否已损坏。目前的方法包括购买一个预编程的 eeprom,成本为 15 美元,至少有一半的时间最终是浪费金钱。
我已经用 UART 进行了一些测试,发现无论 fw 是否损坏,我在启动时都会收到相同的消息,基本上说一切正常。这让我相信问题出在文件系统上。这几乎就是我被困的地方。我试过 binwalk,一段时间后我已经能够提取和解压缩大约 3mb 的 LZMA 压缩数据和一个 JPG,这是启动画面,但我找不到文件系统。
在原始二进制文件上运行 binwalk,我得到了这个:
101602 0x18CE2 MySQL MISAM index file Version 4
145536 0x23880 LZMA compressed data, properties: 0x5D, dictionary size: 67108864 bytes, uncompressed size: 3126792 bytes
2246688 0x224820 JPEG image data, JFIF standard 1.02
无论出于何种原因,我似乎无法提取 MISAM 部分。
在解压后的 LZMA 部分运行 binwalk 我得到了这个:
1484791 0x16A7F7 PARity archive data - file number 24064
1715704 0x1A2DF8 MySQL MISAM index file Version 4
1764734 0x1AED7E Boot section Start 0x0 End 0x100
我试过用 dd 提取 PARchive 和引导部分,但我无法打开它们。我认为这是因为尾随垃圾。我使用了 hexdump 并搜索了魔术字节,但找不到任何。任何建议将不胜感激。如果有人愿意尝试,我也可以提供一份 fw 的副本。