对基于Philips TriMedia CPU的网络摄像机进行逆向工程(一)
Trimedia
Trimedia 是由Philips公司1996年推出的新一代媒体处理器(Media Processor)芯片。被1996年美国微处理器论坛(Micro-Processor Forum)推荐为多媒体处理器的佼佼者。它是一款针对实时处理音频、视频、图像和通信数据流的通用微处理器,它选用了强大、通用的超长指令字VLIW(Very Long Instruction Word)的CPU和内嵌式DSP(Digital Signal Processing)相结合的方案,同时包含分离的数据和指令cache(高速缓冲存储器),峰值计算速度可达40亿次/秒。
它的主要结构由下述几部分组成:可编程的VLIW CPU、专门的数据和指令cache、无缝的存储系统接口、高速内部总线(数据高速通路)、视频输入单元(Video In)、视频输出单元(Video Out)、音频输入和输出单元(Audio In/Out)、专用的协处理器:图像协处理器ICP(Image Co-Processor)及变长解码协处理器VLD(Variable Length Decoder)、I2C接口、同步串行接口SSI(Synchronous Serial Interface)及定时器等。
我们通常都会认为网络摄像机内部装有ARM或MIPS CPU,但实际情况并非如此。该模型以及DCS-5xxx系列的其他模型都具有TriMedia CPU,这是一个非常旧的CPU。为什么这很有趣?就我个人而言,这是一个新的体系结构,这很棒,因为我可以学习新事物。但是,关于TriMedia CPU的文档很少。
固件分析
开始分析新设备时,我要做的第一件事通常是从供应商的站点获取固件。固件的最新可用版本是A3 1.06(2009),但是我决定分析以前的版本v1.05,因为它是我在相机上安装的版本。
我会在固件映像运行binwalk,结果如下:
fastix@fastix-virtual-machine:~/dcs-5300$ binwalk dcs5300_firmware_105.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
978627 0xEEEC3 HTML document header
979192 0xEF0F8 HTML document footer
979238 0xEF126 HTML document header
995907 0xF3243 HTML document header
996327 0xF33E7 HTML document footer
997041 0xF36B1 HTML document header
997325 0xF37CD HTML document footer
998169 0xF3B19 HTML document header
1000439 0xF43F7 HTML document footer
1000448 0xF4400 HTML document header
1000689 0xF44F1 HTML document footer
1000698 0xF44FA HTML document header
1000743 0xF4527 HTML document footer
1007314 0xF5ED2 HTML document footer
1007323 0xF5EDB HTML document header
1008041 0xF61A9 HTML document footer
1010780 0xF6C5C HTML document footer
1010789 0xF6C65 HTML document header
1011723 0xF700B HTML document footer
1011737 0xF7019 HTML document header
1012801 0xF7441 HTML document header
1013342 0xF765E HTML document footer
1013438 0xF76BE HTML document header
1017960 0xF8868 HTML document footer
1017969 0xF8871 HTML document header
1018032 0xF88B0 HTML document footer
1021031 0xF9467 HTML document footer
1025042 0xFA412 HTML document footer