如果有人制造了一个设备,其他人就会想要打开它并在上面运行他们自己的软件。当原始制造商是 Apple 时,这绝非易事,正如 [Daniel Stenberg] 在早期 iPod 型号的案例中提醒我们的那样,它需要一种不寻常的方法。
简而言之,发现了一个 HTML 文件,该文件触发了重新启动,这意味着在固件中发现了缓冲区溢出。经过多次实验,找到了会闪烁背光的内存位置,并且可以从那里注入一段 ARM 代码,该代码会通过闪烁灯光非常缓慢地按位转储固件。可以提取足够的代码来查找 USB 串行端口的地址,从而允许创建通过 USB 转储固件的新代码。我们记得最早的型号使用 FireWire 而不是 USB,因此也许我们可以将注意力集中在第三代或第四代上。从那里可以推断出足够的信息来运行Rockbox音乐播放器固件。我们记得当时看到朋友们这样做,这在一段时间内是开源最酷的事情。
快进二十年左右,我们仍在报道人们削弱苹果的防御措施。我们不知道第一代 iPod 是否可以运行Doom ,但我们知道 Rockbox 可以在其他播放器上运行。
原文: https://hackaday.com/2023/12/09/how-the-first-ipod-was-blown-wide-open/