数码之家

 找回密码
 立即注册
搜索
查看: 14805|回复: 205

[安防] 由维修MSC313E监控摄像头引发的一次破解全过程 版权芯片检查失败另类解决

    [复制链接]
发表于 2022-6-22 16:37:37 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
由于需要监控另外一个地方的植物缺水情况,之前买的100万像素摄像头根本看不清。见之前的帖子:https://www.mydigit.cn/thread-255164-1-1.html

于是在网上买了一个300万像素的正规室外监控摄像头,25元包邮当然是坏的。心想多半就是poe电源挂了,修电源还不简单吗。买来搞搞

拆开结构如下:
主控,电源板,灯控板
WechatIMG24.jpeg

结果到手后,不启动。测主电源,12v正常。靠

现在摄像头,都做得极其小巧。诺大一个壳子里面就一个电源板一个主控板
1-1.jpg

这得得益于海思在十几年前,打破国外垄断,开始研发海思系列监控主控芯片。经过十几年的时间,成功把全球监控系统,做成了白菜价格。监控的大量普及,使得我国在治安和城市管理等方面,有极大促进。后续诞生了好几个国产厂家,都推出了系列的监控主控(有些是海思马甲)

小小监控主控,其实非常复杂。本质上是一套嵌入式系统,完整的linux系统,小电脑。并且因为摄像头必须要有视频编解码能力和ai等计算的要求,对cpu和硬编解码的要求并不低。这几年的主控,连ddr内存都集成进主控了,板子布局进一步简化,成本进一步降低。现在300万400万像素的模组(主板),就几十元。500万,800万的,也不过100多。

这个模组,用的mstar的msc313E主控芯片,和海思的大同小异。测量主板上各小电源,3.3v 1.8v 0.8v 全部都正常。用示波器测量晶振,无波形。更换晶振后,还是没波形。说明主控挂了

图中是主控和晶振:
QQ20220622-152831@2x.jpg

以为小故障,事到如今,换主控是唯一出路。。。

找到一个电子群搞摄像监控的老哥,他非常大方的给我免费提供了几块料板。寄过来后,先用文宇815p二合一焊台的热风枪拆焊,用洗板水清洗干净备用。再拆掉原来的芯片,清理焊盘。。。然后经过了多达十几次的热风枪和烙铁焊接。因为qfn底部散热面积大,针脚非常密集。加上相比bga来说,也不会自动归位。所以焊接异常困难,个人感觉难度超过bga的植球和焊接。。。期间多次以为焊好了,结果测试一下好多短路或者断路。还好文宇815p二合一焊台非常给力,最后用小刀头仔细补焊一圈。大功告成


芯片如图:
E697F1B038E987211C2E6A889ABBDAB1.jpg

接上电源和网线,用fping -g顺利搜索到了ip地址,看来有戏。进入web界面,默认密码123456哈哈。搞定了吗???NO,NO,NO。。。


web登录界面:
C58A8CE3A9BE6DB1D89E4EE6EAB2759C.png



前面是预告片,下面正片开始。。。。
画面效果还不错,但是出现两行小字。。。“版权芯片检查失败 Copyright check failed”。尼码,肿么肥死,这还用个毛线
QQ20220622-130148@2x.png

9A8A28E7EF967049A2669EEB4499D4D7.png

换个主控能出这个,看来摄像头软件部分对主控id之类的有校验。厂家应该对软件和硬件做了一些安全措施。现在单片机,都有id,供开发者进行鉴权等操作。嵌入式系统的安全措施就更多了。比如手机,cpu和nand存储器就是配对的。基本上都是软件实现。主控内部又什么security  boot 之类的技术。包括一些液晶电视的主控和nand之间。就是防止你篡改程序或者私自更换部分配件。厂家这样做也无可厚非,但是摄像头几十元的东西有这种措施,可能是我孤陋寡闻了。

不管如何,这个东西不干掉,这个监控摄像头就没法投入使用。而且,各方面都正常,就是多两行字,你说气不气人。。。

在查了一圈资料后,了解到这个主控,网上有sdk之类的。但是我也不想像以前一样自己编译固件了。而且固件就算你能做出来,摄像头的各种参数调教你们有设备和专用程序也搞不定。破解思路是将就原来的固件,只要没用security  boot 之类的技术,篡改固件在烧写回去。改掉linux中的程序就行了

执行过程比想象中计划还简单。因为这款模组的uboot功能很齐全,没有阉割掉一些功能。比如tftp。这样我只需在uboot中把spi flash读到内存,再通过tftp,传到电脑上,对固件文件进行分析和修改就行了。当然,需要焊接ttl线,常规的115200N8。。。懂的都懂


焊接的ttl线:
WechatIMG25.jpeg

根据ttl的linux kernel的启动信息,了解到了spi flash的分块结构:

Creating 5 MTD partitions on "NOR_FLASH":
0x000000000000-0x000000020000 : "BOOT"
0x000000040000-0x0000001d0000 : "KERNEL"
0x0000001d0000-0x0000007b0000 : "SYSTEM"
0x000000003000-0x000000004000 : "MXPT"

这还不简单,直接用dd命令,把1d0000到7b0000的部分分离出来
dd if=msc313e+imx307.img of=313e.hsqs bs=1 skip=0x1d0000 count=0x5E0000
然后看下是什么分区,一般都是ubi,jffs2,squashfs之类的。这款是magic number是hsqs。。。。还用说吗。。。。


接下来用ubuntu 解开这个squashfs文件系统,然后得到所有厂家的文件,包括各种程序,数据等等

QQ20220621-221852@2x.png

然后用grep 扫描一下字符串“Copyright check failed”,定位在了media_server这个可执行文件中。
单独拎出来,把其中的中英文字符串,改成空串。。。。C语言的结束符和就是空串。。。你懂的。。。改好后保存。。。估计这样就大功告成了。机制就是绕过了主控芯片id的检查机制,还是让media_server显示字符串,但因为字符串是两行空字符串,所以就等于“不显示”。懂了吧。。。妙啊!

这是改字符串的过程:
QQ20220621-223956@2x.jpg


下一步,顺便把root密码改了,把telnetd打开,以便后续进去干坏事。你懂的,顺手就做了。。。简单。。。

QQ20220622-125434@2x.png
QQ20220622-125220@2x.png

然后重新把文件系统用mksquashfs打包。准备烧录

mksquashfs:
QQ20220621-222012@2x.png

烧录也是异常简单,不需要编程器。直接放到电脑端tftp里面,在模组uboot中操作,装载到内存里。在用sf write写到spi flash的1d0000。这个模组的文件系统就更新好了

写入:
QQ20220622-125750@2x.png


剩下就是见证奇迹的时刻

首先,用ttl登录进去,得到root的shell,nice

QQ20220622-130014@2x.png




然后打开配置界面,干净的画面扑面而来。哈哈。搞定收工!

9866995A-94E1-4386-A1F0-24898125C56B.png



完毕,谢谢观看!


打赏

参与人数 26家元 +532 收起 理由
yls3721 + 25 優秀文章
jackydiy + 12 牛叉得不要不要滴啦
cqsuql + 20 優秀文章
deep丨blue + 20 優秀文章
萧错 + 20
makelili001 + 50 優秀文章
邓穿石 + 20 優秀文章
cbh1a + 20 優秀文章
xiaoxuanfeng + 20 優秀文章
abigbell + 20 謝謝分享

查看全部打赏

本帖被以下淘专辑推荐:

发表于 2022-6-22 16:54:34 | 显示全部楼层
真够折腾的 再加快钱 可以讨一个 某康某视的品牌好的摄像头了,不过对于大神的计数佩服 佩服
回复 支持 2 反对 0

使用道具 举报

发表于 2022-6-22 16:56:03 | 显示全部楼层
很不错,很有指导意义。
回复 支持 反对

使用道具 举报

发表于 2022-6-22 16:56:09 | 显示全部楼层
不错的帖子,曾经也研究过mksquashfs 奈何无基础,半途而废
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:00:49 | 显示全部楼层
软硬结合技术帖!赞
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:07:49 来自手机浏览器 | 显示全部楼层
哈哈,打印空字符串
回复 支持 2 反对 0

使用道具 举报

发表于 2022-6-22 17:15:33 | 显示全部楼层
虽然看不懂,但谢谢技术分享!
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:23:04 | 显示全部楼层
这样也行啊,全部空格填充!
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:23:45 | 显示全部楼层
大牛,玩的真溜,改天请教
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:25:25 | 显示全部楼层
楼主软件比硬件溜的很
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:27:54 | 显示全部楼层
这种芯片我的办法是底部散热块涂一点锡浆,然后放好位置用烙铁脱焊四周引脚,最后热风枪加热一遍,这样应该会简单很多
回复 支持 2 反对 0

使用道具 举报

发表于 2022-6-22 17:28:29 | 显示全部楼层
牛真的是大佬级别的
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:32:20 | 显示全部楼层
大佬 整一下BY-WIKP01这个摄像头啊!
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:32:34 | 显示全部楼层
不得不佩服这种 精神。。一般人早放弃了,毕竟只是十几块的玩意
回复 支持 反对

使用道具 举报

发表于 2022-6-22 17:33:25 | 显示全部楼层
你这不算翻车,有技术不翻车
回复 支持 1 反对 0

使用道具 举报

发表于 2022-6-22 17:42:24 | 显示全部楼层
楼主用的方法很巧妙,走的曲线救国的方法,不干掉大炮,直接改成空包弹,整个过程都是uboot免拆flash完成的,和当年折腾路由器一个套路。不过这个活儿放我手里会粗暴的拆flash读出固件 再进winhex 找找线索
回复 支持 3 反对 0

使用道具 举报

发表于 2022-6-22 17:51:40 | 显示全部楼层
高高手啊,,,,,软硬兼施
回复 支持 反对

使用道具 举报

发表于 2022-6-22 18:15:30 | 显示全部楼层
这个其实重在过程
十几块的东西这样弄

几千块的东西也可以这样弄
回复 支持 3 反对 0

使用道具 举报

发表于 2022-6-22 18:25:19 | 显示全部楼层
不懂程序,
只能仰视大神了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-5-18 22:55 , Processed in 0.265201 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表