获取 VTech/LeapFrog LeapStart/Magibook 的固件

2025-04-03 · leloubil's blog 这是一篇非常短的博客文章,关于我的第一个逆向工程项目,在这个项目中我还没有真正逆向任何东西,但我只是刚刚开始! 一位家人要求我向他为儿子购买的 LeapStart 添加额外的书籍数据,这就是这里的起点。

设备概述 #

该设备在英文中被称为 LeapFrog LeapStart,在法语中被称为 VTech MagiBook(我来自法国,所以我拥有的是法语版本)。该设备是一种儿童阅读辅助工具。 它由一个大的塑料框架和一支带有尖头的笔组成。打开电源后,你可以将兼容的书籍放在设备上,并使用笔触摸页面。然后,设备将阅读页面上的文本,播放声音,或根据书籍执行其他操作。 leapstart preview image 该设备具有 micro USB 端口、音频插孔、电源按钮和音量按钮。

我为什么对此感兴趣? #

作为一种逆向工程实践!我将在几个月后毕业,除了学校项目的微型二进制文件外,我还没有做过任何“真正的”逆向工程。 我也被阅读书籍的工作方式所吸引,它是通过识别页面上印刷的非常小的点阵图案来实现的,如果你想了解更多关于这方面的信息,请查看这个视频系列(法语):https://www.youtube.com/watch?v=TWPTnmCAc6c 他还解释了硬件,我不会这样做,因为我没有相关的知识。 我对固件感兴趣!

获取固件 #

要开始逆向固件,我首先需要获取它。从设备中提取它超出了我的能力范围,那么在哪里可以找到呢?好吧,当使用 VTech Software 添加书籍数据时,它还对设备进行了固件更新。 这意味着固件在我的电脑上! 在我的电脑上搜索与 VTech/LeapStart 相关的文件后,我在此位置找到了一个缓存文件夹:C:\ProgramData\VTech\DA\VtechStart\LFC_Downloads\cache 然后,我开始使用 binwalk 分析此文件夹中的文件。 我发现了一些有趣的文件,似乎包含音频数据,但是,我不确定它们是如何存储的,是否经过压缩以及使用了哪种编解码器。 更重要的是,我还发现了这些有趣的文件(在实际上是 zip 压缩文件和/或 tar 压缩文件的缓存文件中):

我将暂时关注这些文件,因为它们似乎是固件文件。

FileSys #

FileSys 文件实际上是一个 FAT32 文件系统镜像。挂载它时,它具有以下结构:

.
├── AppManifest
├── BookManifest
├── MusicManifest
├── apps (folder)
├── audio (folder)
├── books (folder)
├── music (folder)
└── system (folder)
  └── manifest.cb

这里的所有文件都只有 1 kb,我还没有在其中找到有趣的数据/字符串。

System #

我不确定这个文件_到底_是什么,但是使用 binwalk 并带有 -A 标志来查找操作码,它找到了很多 ARM 函数序言。我假设这是一种 ARM 二进制文件,但是没有任何头部或其他信息,我还没有弄清楚它到底是什么。 但是,我确实在其中找到了一些有用的字符串:

下一步 #

虽然这小部分已经花了不少时间,但它让我能够更深入地研究这两个文件。我将尝试查找有关此 System 文件的更多信息,包括:

感谢您阅读这篇简短的第一篇文章! #reverse-engineering[](https://leloubil.prose.sh/<https:/leloubil.prose.sh?tag=reverse-engineering>) #firmware[](https://leloubil.prose.sh/<https:/leloubil.prose.sh?tag=firmware>) #leapstart[](https://leloubil.prose.sh/<https:/leloubil.prose.sh?tag=leapstart>) #vtech[](https://leloubil.prose.sh/<https:/leloubil.prose.sh?tag=vtech>) #magibook[](https://leloubil.prose.sh/<https:/leloubil.prose.sh?tag=magibook>) published with prose.sh