Porting Doom to a 20-year-old VoIP phone
2 days ago
- #hardware-hacking
- #reverse-engineering
- #doom
- 作者通过逆向工程固件和硬件,将2005年的Snom 360 VoIP电话改造成了能运行《毁灭战士》的设备。
- 初期步骤包括将电话固件升级至最新版本(V08),并使用binwalk等工具分析其内容。
- 固件中被发现包含JFFS2文件系统,显示其运行在MIPS芯片上的Linux 2.4.31系统,这为移植《毁灭战士》提供了可能。
- 关键二进制文件'1lid'和'lcs360'被确负责电话的音频和网页界面功能。
- 作者找到了电话组件的GPL授权源代码,包括内核、BusyBox和交叉编译器,这对项目有重大帮助。
- 通过搭建TFTP服务器和串口刷写,构建了可获取shell访问权限的自定义固件。
- 逆向工程重点研究了电话的显示屏和键盘驱动,利用ioctl调用与硬件交互。
- 开发了定制驱动来控制电话显示屏和LED灯,实现了基本图形输出功能。
- 使用doomgeneric将《毁灭战士》移植到电话上,实现了显示输出、键盘输入和计时等必要功能。
- 最终成果成功在Snom 360上运行《毁灭战士》,但存在文字无法识别和没有声音等限制。