作弊与反作弊的较量:被控控支配的恐惧

前些日子,我收到了一位 友的咨询,她的学长卖给她一个叫控控的东西,说可以用来帮她代考,希望我研究一下是不是靠谱。在对她一番劝导之后,她放弃了作弊。
为了确保她不会误入歧途,我决定买下她的这只控控,研究研究。
经过几天的奋战,现在,我的心情是崩溃的,因为我遇到了几乎无法战胜的对手。

什么是控控

控控是上海贝锐信息科技股份有限公司开发的一款硬件级远程控制工具。

与传统的软件远程控制方案(比如TeamViewer、QQ远程桌面)不同,控控不需要在被控电脑上安装任何软件。

因此,控控的应用范围和可靠性远比软件远控方案要有优势,比如:

  • 传统的软件远控方案无法操纵电脑的BIOS,因为此刻还没有进入操作系统,远控软件还没有启动。
  • 传统的软件远控方案无法做到死机时重启电脑,因为一旦死机,远程控制软件也就停止了运行,电脑便进入失联状态。
  • 传统的软件远控方案对操作系统有要求,一旦使用了远控软件不支持的操作系统,比如x86版的Android、某些版本的Linux等,便完全无法使用。
  • ▼让我们先看看控控本尊,一个方方正正的小盒子

    ▼从左到右依次是 口、连接被控电脑的USB口、连接被控电脑的HDMI口、电源口。

    ▼另一侧还有两个接口,分别是连接显示器的HDMI口和连接摄像头的USB口,是的,控控还支持远程摄像头。

    ▼让我们看看控控是如何接线的。

    被控电脑的视频画面通过HDMI线输出给控控,控控将画面通过云端传输给控制端电脑,于是控制端电脑就可以看到被控端电脑的画面了。

    控制端电脑发出的鼠标键盘操作,通过云端发送给控控,控控把自己模拟成一个USB接口的键盘鼠标,通过与被控电脑连接的USB线,传输给被控电脑。

    在被控电脑看来,它只是连接了显示器、键盘、鼠标,只要被控电脑能够使用普通的显示器、键盘、鼠标,就可以被控控控制。

    你可以这么理解,控控其实就是一根超长的鼠标线、键盘线、视频线,长到可以通过 络延伸到任何地方。

    考虑到很多电脑只有一个HDMI视频输出口,为了避免管理员在不需要使用控控时,还要频繁把HDMI线在显示器和控控间拔插切换,控控还提供了一个HDMI输出口,可以把主机的图像复制一份给显示器用,类似分屏器的原理。

    这样你就可以上班使用显示器办公,回家用控控远控,搞运维的兄弟开心极了,这也是控控的设计用途。


    作弊者的阴谋

    与 友聊了一会儿之后,大致知道了学校的监考方式。

    据她描述,这次考试是博士入学考试,按道理讲属于高校招生考试的一种,已经属于国家级考试了,作弊入刑,因此监考比较严格。

    ▼考场布置示意图

    简单描述下监考要求:

  • 摄像头1放置于屏幕上方,拍摄考生面部,视频连续无中断。
  • 摄像头2放置于考生身后高处,俯拍屏幕和考生,视频连续无中断。
  • 麦克风拾音。
  • 考试软件开考后只允许登陆一次,如果死机或者需要更换机器,必须由老师后台操作。
  • 考试软件检测到虚拟机会自动退出考试。
  • Windows自带的杀毒软件Windwos Defender必须启用,或者有其他杀毒软件运行。
  • 仅能连接一个屏幕,超出一个屏幕无法进入考试。
  • ▼这位 友的学长的代考方案。

    如果这次考试真的有人这么作弊的话,没说的,肯定得手了。

    在电脑端看来,显示器数量也没超,控控又扮演了分屏器的角色。


    拆解

    为了研究下控控的技术原理,我又忍痛拆开了它。

    (PS:一般被我拆开的东西,结局都不怎么美好,装回去之后,总是多点儿或者少点儿零件。与之相对应的,功能也有所变化,上一个是扫地机器人变成随机游走模拟器,激光雷达失灵了)

    ▼控控设计得还是很紧凑的,就一块板子,主要芯片的型 我都标注在图上了。

    简单介绍下各个芯片的作用。

  • Hi3516:个头最大,是SoC,集成了800MHz的CPU,支持H264硬编码,主要负责把被控端的图像编码后串流到控制端。
  • SK Hynix H5TQ4G63CFR:512MB的内存颗粒。
  • MXIC 25L12835:16MB的Flash,真想不到,居然16MB的存储就能实现这么多功能。
  • RTL8211E:千兆 络接收PHY芯片,控控使用有线联 时使用。
  • RTL8723BS:Wi-Fi模块,控控无线联 时使用,看资料还支持蓝牙,不过控控似乎没用这个功能。
  • P13HDX414FCEE:HDMI分配芯片,用于把一路HDMI复制成两路,一路送往显示器,一路送往ADV7611。
  • ADV7611:HDMI接收器,用于接收P13HDX414FCEE分出来的两路HDMI中的一路,并输出像素级的图像数据给Hi3516。
  • STM32F103C8T6:万金油单片机,用于模拟USB键盘鼠标。

  • 尝试

    因为控控会与被控端通过HDMI和USB相连,我们就从这两点入手吧。

    先试了试之前屡试不爽的EDID识别法,不了解的小伙伴参考这篇文章:

    作弊与反作弊的较量:分屏器真的安全吗?

    然而,查过资料之后,发现P13HDX414FCEE这颗芯片是支持EDID设置的,可以动态修改EDID。控控基于这个功能做了EDID复制,只要控控上连接了显示器,控控就会把显示器的EDID复制一份。

    因此,电脑端完全不能从EDID看出区别来。


    曙光

    既然EDID行不通,那我们看看控控模拟出的USB键盘鼠标是不是有特征可以识别。

    熟悉USB协议的朋友一定知道,USB设备有两个非常重要的的属性:VID和PID。

  • VID是Vendor ID的缩写,就是厂商ID,用于标识设备的厂商。
  • PID是Product ID的缩写,就是产品ID,用于区分同一厂商生产的不同型 设备。
  • 因此,VID/PID可以唯一标记一个型 的设备,一般写作VID:PID。

    控控模拟出的USB设备的VID/PID是0488:572B,哈哈,找到特征了。

    同时,我又尝试查看了下控控的固件,找到了USB信息中的更多猫腻。

    ▼看到了吗?固件中,USB设备信息的厂商名是Shanghai Oray,就是生产控控的那家公司,设备名里也有OrayKVM字样。

    如此明显的特征,虽然防不住用控控当远程分屏器的作弊方式,至少远程代考现在可防可控了。

    方案如下:

  • USB设备VID/PID为0488:572B的,拉入黑名单
  • USB设备信息中出现Oray的,拉入黑名单

  • 漏洞

    就在我为找到识别方法而高兴的时候,这位 友给我发来了一个压缩包,是学长发给她的,要她照着视频教程操作,说是可以防止被检测到。

    我的好奇心又来了,究竟是什么神奇的东西呢?

    ▼解开压缩包,发现一个固件和一个刷固件的工具。

    ▼按视频教程的步骤,通过SSH连接控控的控制台,控控的SSH居然默认就是开放的,账 密码也是默认的:admin/oray.com。

    ▼刷了下固件。

    ▼有什么变化呢?重新连接上USB,居然VID和PID都变了!从0488:572B变成了9999:6666。其实厂商名称和设备名称也变了,但是内容涉及当事人的隐私,被我隐去了。

    这下糟了,所有识别方案都失效了。


    反思

    我仔细检查了修改版的固件,对比原版固件,其实只是USB信息部分发生了变化。

    我又检查了下那个刷机工具,其实就是芯片厂商官方提供的工具改了个名字。

    STM32F103C8T6这款单片机太常见了,我带的十个毕设九个会用到,基本上学过相关专业的学生,都可以掌握修改信息需要的技能,门槛不高。

    我一开始也不是没想到这点,但是我当时认为,要做到重刷固件,至少需要拆开控控的外壳,用测试夹和编程器,甚至需要拆焊芯片才能完成这个操作,还算有较高的门槛。

    没想到控控可能是为了方便后续升级,预留了相关接口。


    后记

    控控作为运维工具,实乃神器,可能由于它的产品定位是技术人员使用的生产力工具,因此更加开放,比如提供了SSH功能,可以不拆机刷固件,非常灵活。

    不过,这么好的工具,作弊者居然用来作弊,实在令人不安。

    如果大家想到什么好的技术方案,欢迎在评论区讨论。

    如果你对这方面的知识感兴趣,就点个关注吧,这样就不会错过后续的更新咯。


    本系列其他文章:

    作弊与反作弊的较量:分屏器真的安全吗?

    作弊与反作弊的较量:分屏器识别的挑战

    作弊与反作弊的较量:虚拟摄像头有多危险?

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2020年6月18日
    下一篇 2020年6月18日

    相关推荐