自从当上电子垃圾佬,房里的吸尘器越堆越多,可惜每次都管不住这手啊。这次败来的是一台海思方案的硬盘录像机,到手后由于太急,没有拍遗照便惨遭我肢解,只好配上x宝卖家的图让大家一睹其生前芳容:
可以看出配置了两个SATA口,其中一个标准母座适配2.5寸硬盘,一个eSATA可以连接外置硬盘;两个USB2.0,一个VGA,一个HDMI,一个(百兆)网口。买家的图显得有点脏,我实际到手的比照片看起来新。
整个外壳是全卡扣设计,没有一根螺丝,直接上大力就拆开了。需要注意的是外壳多处形状较为尖锐,谨防割伤。楼主在拆时由于用力过猛擦破了点皮,好在没流血。
拆开一看我的心就凉了半截,里面就一张绿到你发慌的板子,上面一个256M的DDR,一个LQFP的主控,上书"HI3515",还有一个IC应该是RTC:
非常奇葩的是供电走的是microUSB,而且满板子找不着ROM,那颗SOP8被磨了型号,连编程器也读不出,排除是SPI flash。再一查这颗主控的信息,心直接凉透了,ARM926 400MHz,想自己配文件系统都麻烦,垃圾中的战斗机,可以考虑挂咸鱼上找接盘侠了。
死心归死心,流程还是要走完。接上debug串口,擦腚揩鸡:
Linux version 3.0.8 (root@sqy-desktop) (gcc version 4.4.1 (Hisilicon_v100(gcc4.4-290+uclibc_0.9.32.1+eabi+linuxpthread)) ) #81 Fri Oct 17 16:20:03 CST 2014
CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: hi3520d
嗯?log报的是ARMv7的架构而非ARM9,并且型号也和芯片的标对不上,是HI3520。查了一下这颗主控的信息,是600MHz的cortex A9。可能还有得玩?
ps一下,看到有telnetd。默认IP是192.168.1.188,和我路由器的网段对不上,ifconfig改一下,连上了,但是要密码,试了几个常见弱口令都不对。passwd重置密码,报错:
/etc/passwd: Read-only file system
重新挂载 / 为rw,报错依旧。mount一下:
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro,relatime)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000)
/dev/mtdblock3 on /root type jffs2 (rw,relatime)
/dev/mtdblock3 on /update type jffs2 (rw,relatime)
/dev/mtdblock4 on /usr/etc type jffs2 (rw,relatime)
usbfs on /proc/bus/usb type usbfs (rw,relatime)
原来 / 是squashfs,只读的。查了一下这种情况重置密码该咋办,基本上都是说要提取squashfs,解压,修改,再重新生成新的fs写回去。这样做一来是麻烦,二来是我手上有锤子,哪能放过/etc/passwd这颗钉子。下面有请锤子出场:
连上我(好吧,其实是学校的)双路银标E5 32个框框的服务器,上传/etc/passwd,生死看淡,不服就干,john the ripper开始爆破:
john --fork=32 passwd
结果是一个很弱的口令:antslq。看来是大炮轰蚊子了。
输入爆破得到的口令,telnet成功登录。
(待续)
离线
固件dump:
本来从SPI flash里dump固件是很简单的,编程器一连就ok了。不过这奇葩板子上到处找不到flash,难道是集成到片上了?好在自带的u-boot仁慈地留了1s的autoboot延时,可以用sf工具dump。
启动后按任意键终止boot,进入u-boot命令行。
sf probe看一下flash:
hisilicon # sf probe 0
32768 KiB hi_sfc at 0:0 is now current device
32M的,对应的16进制byte数是0x200000。
设置一下本机IP和tftp上位机(运行tftp服务器的主机)地址:
setenv serverip 192.168.x.x
setenv ipaddr 192.168.x.y
将flash内容读入内存0x82000000处,然后tftp上传:
sf read 0x82000000 0x0 0x200000
tftp 0x82000000 flash.bin 0x200000
得到固件后binwalk了一下,暂时没发现什么有意思的东西,就当做个备份以防日后玩坏了吧。
固件上传到了我建的一个交流群里:1164615798
板子自带的kernel版本是3.0.8,libC是libuClibc版本0.9.32.1,估计大多程序没法直接在这个上面跑,得重新编译链接到uClibc的版本。这颗IC的资料也找不到,更别说更新的内核了,想玩起来还是有点难度,不过自带系统里有nfs,做个文件服务器应该还是可以的。
离线
最后提一下这颗比较迷的主控。objdump了一下固件里的bin,可以确认是armv7的ISA,也就是说它一定不是它标记的型号,HI3515。但是它和系统检测出的型号HI3520又不能完全对上,首先HI3520的手册显示它并没有配备HDMI输出,然后前文中提到的似乎被集成到了片内的flash亦没有被提及。诡异的是HI3520在手册中的封装是BGA,但网上查到的HI3520图片却几乎都是lqfp封装的,而且部分还有HDMI输出。难道是我搜索手册时的型号不对?
离线
Winbond SOP16难道不是ROM?
看了一下还真是,W25Q256。之前没遇到过这种封装的flash,加上离电池比较近,我看都没看就当他是RTC了
离线