标签: 街机

TPM攻击:通过 LPC 总线旁路嗅探硬件 TPM 的密钥

前言

本文对这篇文章的改动已经不能叫做翻译了,因此算作编译吧。其实在这篇文章发布出来不久,我就在 NuSX 上验证了这篇文章。当时最大的困难是给 TPM 芯片飞线,我拜托了一个做硬件的朋友帮我远程飞的线,并使用这篇文章获得了密码。

SEGA 果然还是日本厂商,在硬件平台之上的 Windows IoT 系统还是一如既往的留有设计缺陷,导致了这个密码可以用很久。

扯的有点远了,我们来开始看看它说了什么吧。

背景

TPM (全名:Trusted Platform Module)是一种计算机系统的扩展模块,用于提供安全相关的功能。其中, TPM 芯片是一种硬件安全的加密处理器,可以安全生成、储存密钥,并用来保护其他加密密钥。目前市面上流行的 TPM 主要是两个版本:1.2 和 2.0。在 2019 年的时候,有安全团队发现了部分 TPM 1.2 和 2.0 芯片,甚至是一些 Intel 平台的软件 TPM 的设计缺陷,会导致 TPM 硬件内存储的密钥信息发生泄漏。

这一攻击方法已经在2020年的29届Usenix安全大会上由一些安全研究员公开,并展示了利用这一攻击进行 IPSec 网络认证攻击,在他们的论文中表明,只需要至多45,000次攻击,即可在目标系统内获取认证密钥。

除了网络认证,TPM 的一个重要落地应用是 Windows Bitlocker ,Windows Bitlocker 是 Windows 系统内置的硬盘分区保护工具,可以以用户定义密码或透明加密的方式保护用户硬盘分区内的数据,防止任何非法访问。

在基于时序的软件攻击外,很多没有在协议上做额外保护的 TPM 模块还存在着协议旁听漏洞,这使得很多可以物理访问但软件有保护的硬件系统存在着更多的风险。比如,街机领域内的软件厂商为了防止自己软件被泄漏或非法修改,对于分发的产品内的整块硬盘采用了 TPM + Bitlocker 加密的方式。

Bitlocker 101

上图是微软官方介绍的 Windows Bitlocker 保护方式,核心是图中的 Volume Master Key(VMK),由两类来源生成,两者在解密作用上是等价的:

一是密码,密码可以是单纯的用户指定的密钥,也可以是单纯的 TPM 密钥(透明加密),或者是两者混合的方式。

另一个是恢复密钥,这一密钥在加密完成后会给出到用户或者存储到用户的 Microsoft Account 内,在用户忘记密码的场合,可以使用恢复密钥来解除保护并访问内部的文件。

通过Volume Master Key,衍生出Validation Info 和 Full Volumn Encryption Key(FVEK)。Validation Info 除密钥特征外还跟当前系统的硬件信息、启动信息做绑定,如果硬件或启动信息不匹配,会进入到恢复模式,要求用户给出恢复信息。这样的设计是防止旁路攻击,即恶意用户拿到硬盘镜像后通过其他系统进行硬盘访问。

而 FVEK 是加密硬盘的主密钥,它本身被 VMK 所保护。所以,在透明加密模式下,如果解密 VMK 的来源(TPM)被攻击产生泄漏,那么接下来的链条都会被攻击。

TPM 简单介绍

微软的官方网站上提供了大量的 TPM 基础知识,因此我们不会再展开太多篇幅来介绍 TPM 的设计和其他基础信息。但是有一点需要说明的是,可能会有朋友认为既然目标系统存在保护,在有硬件的前提下我另外启动一个系统(比如 Ubuntu或者别的Windows)就可以获取 TPM 密钥,但其实 TPM 模块本身对于密钥生成的目标系统有一个叫做“启动状态”的存储标志位,这一标志位类似于 uuid ,是目标系统初始化加密时候生成的唯一值,理论上无法被碰撞。因此很难通过旁路系统进行 TPM 攻击。

TPM 与系统之间的通讯一般是 LPC SPI 或者 I2C 总线。在本次分享内我们会对于基于 LPC 总线的模块的攻击方式,如果想在线下自行复现本文攻击,需要确定自己使用的 TPM 硬件模块的通讯协议,具体方式可以去查看对应型号 TPM 芯片型号的白皮书,然后跟本文一样通过一台逻辑分析仪来进行分析。

上手逻辑分析仪:原作者的 TPM1.2 攻击和分析记录

作者使用了一块 SLB93650 TPM 1.2 芯片来进行攻击示范,这一芯片使用的是 LPC 通讯协议。在它的生产厂商官方网站我们很容易就能找到它的针脚定义:

要嗅探 LPC 协议一共需要7根电线:LCLK(时钟)、LFRAME、LAD0、LAD1、LAD2、LDA3、GND(接地)。首先,使用飞线在主板的这一芯片上直接将这7根引脚飞线出来:

然后,我们来找点东西来阅读 LPC 协议信息。

作者使用了注释6中的逻辑分析仪来进行逻辑分析,配套的软件是 DSLogic。DSLogic 和 PulseView 都使用了 libsigrokdecode,因此是通用的。由于 LPC 是 33Mhz 频率运行的,因此使用 100Mhz 采样可以尽可能的放慢信号并进行解析。

在作者的首次捕获中遇到了两个问题:第一个是解码器将 TPM 消息报告为保留消息,并没有正确解码它们,第二个是逻辑分析仪没有足够的存储空间来捕获完整会话,只看到了启动通讯消息。因此,需要修正时钟讯号来支持自动解码,否则解码的工作量将会是天文数字。

首先,作者解决的是识别问题。这是一个 DSLogic 的逻辑问题,阅读设计文档很容易发现 TPM LPC 协议是有协议头的: START(0101) ,因此进行对应修复就可以。

另一个问题作者的解决手段有一点歪道。毕竟直接更换逻辑分析仪成本还是比较高的,于是作者采用单通道分别捕获多个独立通道的信息,然后再将它们混合。于是,就获得了所有信号。

检索 VMK(Volume Master Key)

完成上面的工作后, LPC 消息就被成功解码了。剩下的就是在转储的数据里面找到 VMK 。搜索方法也很简单(去读 Bitlocker 协议的定义),就可以知道搜索 VMK 的标志位:0x2c 0x00 0x00 0x00。

作者运气不错,第一次就捕获到了完整的信号,他给出的截图,VMK消息位于 0x00000024 的 TPM 获取命令中。

来展开看下这个消息:

用计算器转换下:

然后就是重复直到 VMK 长度的消息:

使用 FPGA + 脚本读取 TPM2.0

好用的逻辑分析仪也需要捕获+解码的过程,一旦整体流程跑通,那我们就可以使用 FPGA开发板+脚本程序来自动化这个过程。Lattice ICEStick 是一款廉价易得的开发版,配合脚本就可以很快简化这个步骤。

需要特别说明的是,TPM 2.0 协议中增加了对于发送、接收指令的校验,可以一定程度上防止消息截获,但是 Bitlocker 在使用 TPM 芯片的时候并没有启用这一功能。

举个例子,SEGA ALLS HX1 ,是一款世嘉于2019年推出的街机基板平台。它搭载了 英飞凌 SLB9665 TPM2.0 芯片,根据上面的介绍,很轻松就可以找到这一芯片的定义:

我们也来简单飞个线:

然后就可以获得信息了。

原文附录:

READING

HARDWARE

SOFTWARE

同样的试卷,不同的答案——“太鼓三国”基板拆解

机缘巧合,最近在闲鱼上连续收到了太鼓13和“太鼓三国”的基板。主要也是 256 这代和模仿它的设备都已经到了报废的年龄,因此也逐渐流入市场了。

“太鼓三国”是倍儿悦科技在2012年基于万代南梦宫《太鼓达人》进行山寨的国产游戏机。时间拨回2012年,日本和 EXPORT 区的太鼓达人已经换代成基于 Namco System 357c 的太鼓达人 KATSU-DON 版(新框体),然而中国大陆地区因为种种原因(这里面的传说有好几个版本,比如太鼓12亚洲版积货太多,或者万南香港狮子大开口要求一次性下定千台才能代理,等等)没有太鼓新版本进入中国(大陆地区)。

为什么我这么笃定的说它是山寨呢?因为它除游戏方法和音符标注完全对齐了太鼓达人 11 亚洲版之外,还内置了大量太鼓达人的原创曲目,这些音乐直到几年后的天下一音游祭才有限的在另外几个音乐游戏内收录,是万万不可能通过正规渠道流入第三方游戏内的。

想了想,好像至今也没有新的太鼓以官方形式进入中国,只有一台虹版作为场测机在国内到处流通。不过上次写了 DX 和中二之后没多久 DX 和中二就有国内代理了,希望这次我这个 Flag 也好用吧。

说回到“太鼓三国”,其实它刚上市的时候(大概2013年?),我就有在西安骡马市的汤姆熊玩到。当时对它的印象就是判定极差,游戏界面卡顿。虽然它给到了“液晶宽屏+太鼓”的配置,但是劣质的拖影液晶+开发质量极差的游戏,还是注定要失败的。

那既然在10年后收到了它的主机,就一起来看下吧。

截图早上直接发微博了,本地没有留,那就直接用微博上的图吧。

主机概览

到手是一个银色的小主机,脏兮兮的。外部接口的话不多,大概只有:

· 1个 12V 电源输入

· 1个 24+5 DVI 接口(实测的时候好像在 BIOS 里关闭了,没有视频输出)

· 1个 VGA 接口

· 1个 网络接口

· 1个 音频输出接口

· 4个 USB 2.0接口

· 2个 RS232 (COM)接口

以及正面没拍到的一个电源开关+指示灯。

说实话我还挺喜欢这个机箱的质感和尺寸的,如果它不是这么脏兮兮的,可能我会考虑收藏吧。

加密狗是深圳深思科技的S4。

收到手先不着急拆,先点亮一下看看。

我家里也没有 VGA 的显示器,因此用的是 Genki 生产的 ShadowCast + 绿联的 VGA 转 HDMI 转接头来直接投到电脑上查看。这样倒方便截图了。

“不装了,我也叫喀”(跟太鼓11一样)

因为没有去收 IO ,因此只开机看了下待机 demo play 和系统。在测试过程中因为一开始没插音频线,后面插上的时候,弹出来的小螃蟹控制面板直接把游戏顶出去了,我确实没绷住。

游戏场景切换的时候就能感受到明显的卡顿,跟我十年前玩的时候体验几乎一样。算了,直接开拆吧。

十年过去它已经不知道被拆过多少次了,反正外壳螺丝是不全的。拆下固定顶壳的螺丝,就可以将它分开。可以看到,侧面的两个USB和正面的 RS232(COM) 接口都是通过扩展线拓展出来了,主板本体是一个 17*17 的 thin itx 主板。

一块硬盘固定挡板,描述的还挺详细的。不过这台机器没有额外的硬盘,全靠主板上的 mSATA 固态硬盘。取下这块挡板,就可以看到主板本体啦。

这块主板淘宝上也有卖的,是行业定制的 AMD E-350 主板。

好大一个【渔】暴露了它其实主要是打鱼机。

不过我手上这块没有那个很明显的【渔】字。它的完整配置是:

CPU AMD E-350

主板 AMD Hudson D1

内存 金泰克 2G DDR3 1333

硬盘 Kingspec 金泰克 8G mSATA

它的内部结构就这么简单,因此拆解就只有这么简单的内容。但是还是想多说两句。

上面的这个东西,是 SEGA 在2013年同时期推出的 nu 低配版 nu sx。它也是基于 AMD 的低功耗平台的定制工控机。恰好这台机器我也有,而且当初逆向它的 TPM 保护机制花了很多功夫。

都说日本人死板、技术落后,但其实它们在工业设计,工控机系统开发上比起我们来说真的要强非常多。比如同样的 AMD E350 系列,SEGA 完整移植了 Nu 时代的完整安全保护设计(TPM+定制keychip),Windows IoT定制系统并且引入了完整的 mx 系列基板环境。反观倍儿悦的“基板”,公版AMD itx 主板+盗版Windows XP,也几乎没有什么保护。在在上个十年初恰好是上一波计算机硬件大爆发,拿着同样的试卷做出截然不同的东西,真的令人非常难受。

Namco SYSTEM BAN1 拆解

好久不见。我还在。

过去的两年多有很多很奇妙的事情,比如买房、装修、结婚什么的,有时间慢慢分享吧。

最大的影响还是工作依旧甚至更加繁忙,导致没有太多时间打理博客和服务器。这两年里甚至产生了让双子宕机的两次事故,在这里也跟他们仍在坚守的会员说声抱歉。

而到街机音乐游戏这边,国内的环境也在变好,虽然不是以我想像的样子。科乐美那边不太玩,但是也有新的跳舞机被世宇代理。世嘉这边,舞萌 DX 的铺货数量已经突破 1000 台 ,中二节奏New!!也已经正式铺货。不过南梦宫依旧在进行意味不明的全国场测,一台新框体在全国到处流动。

啊,果然还是想玩太鼓。

虽然街机没什么时间折腾了,但是新的基板还是在买。过去两年,我跑通了 TPM Sniffer 的流程,也解开了 SEGA ALLS 系列的 Bitlocker。Namco 的新太鼓基板 BAN1 也是基于 Windows 10 IoT + Bitlocker 的 PC 架构硬件,之前在日拍上都是天价。不过最近终于蹲到一个价格还可以的,是 機動戦士ガンダム エクストリームバーサス2 的基板。虽然最近北京因为众所周知的原因物流不太正常,但是好像赶上了末班车,总之在国庆假期期间到了。简单拆了一下,分享一下图片。

外观上,比之前的 ES3 ES1 来说,电源做在了机箱里,看起来不像是外挂了。其他的接口之类的倒是跟其他家的 PC Based 基板没什么区别。贴纸贴住的是一组 RTL8111 千兆网卡接口和两个 USB ,以及主板上板载的 HDMI 接口。

加密狗还是万年不变的优盘序列号,可以通过量产工具使用第三方优盘仿制。不过看介绍有使用圣天狗 HL 系列的加密狗进行保护。

先从上面的硬盘口打开看看吧。是双SSD。简单插电脑看了下,是一块系统盘(64GB)和一块游戏硬盘(128GB)组成,全盘都是 Bitlocker 加密的。

两块硬盘和内存和加密狗应该都是整机解决方案内提供的,全部都是 innodisk 和 silicon power 的牌子。看了下通电时间,都是395次 4000小时 左右,看来高达这个游戏一年多就被换掉了。

那么接下来拆开看看吧。

说实话,这个里面真的挺磕碜。都不用跟 Taito TypeX4 比,就连跟 SEGA ALLS 比,都比较寒酸。不过好在还是提供了显卡的固定支架。

电源没有看到铭牌,也没继续往下拆。但是一个 80Plus 的认证标签倒是贴在了最外面,有点怪。

三洋的风扇。

有一个很有趣的细节, BAN1 的 FPanel 上插了一个拓展电路板,用于提供上电自动开机和硬盘指示灯的功能。我试了下,把这个小电路板拔下来就不能自动开机了。好怪。

显卡是 ALLS HX2 Lite 同款的 GTX 1050Ti 。

内存也是 Innodisk 的,两根 4G 2400。

主板提供了 1 条 PCIE x16 、 1 条 PCI 和两条 PCIE x1 接口,还提供了四个独立的 RS232 COM 控制芯片(两个在主板 IO 上,两个作为扩展口,扩展在 PCIE 接口上)。话说主板上的 PCI Localbus 的图标好怀旧啊。

其实拆机的一个目的是找一下有没有独立的 TPM 芯片,但是找了一圈好像并没有发现,只看到了 TPM 的插针。那既然没找到,只能从镜像入手看看了。

总之就拆到这里,后面再分享更多 BAN1 的情报。

在 Linux 上挂载 System357 硬盘

按:4月份的时候这篇文档的西班牙语版就已经出现在国外论坛上,但其实方法早就流传很多年了。 System357 硬盘比起家用 PS3 来说,省略了安装自制系统-导出 eid_root_key 的步骤,使用了同一套密钥组。这次的文章翻译会省略一部分提取 eid_root_key 的步骤。PS3 的系统研究,包括本文,都大量参考了 PSDev Wiki 的相关内容(https://www.psdevwiki.com/ps3/),在这里也一并感谢。

前言

本文主要描述的内容是将 System357/369 的硬盘挂载到 Linux 电脑中。在本翻译中,所有的操作环境是基于 Linux Mint 20.1 x64 的 Cinnamon desktop 标准版进行的。对于中国的用户来说,这个发行版镜像可以从境内镜像站快速获得:

https://mirrors.bfsu.edu.cn/linuxmint-cd/stable/20.1/linuxmint-20.1-cinnamon-64bit.iso

而在本文中,我们使用太鼓达人绿板(太鼓の達人 グリーンVer),S357C-11E,ST4100-1-NA-HDD0-A 作为解密源硬盘。

已知的研究已经对于 PS3内置硬盘(英文) 的加密情况有了大致的了解。每个家用版型号(即除所有街机基板型号)都有独有的一套密钥。在解密后,PS3 的系统有特有的分区表,以及在某些型号上高达10个的分区。其实并不太需要知道所有分区的功能,只需要关注几个特定分区即可。比如说, dev_hdd0 是用户数据、系统分区、配置和 swap 区域,dev_flash2 是在一些有 NOR flash 的型号上保存终端和其登录用户数据的区域。

上图是 PS3 硬盘逻辑分区布局图,可以在下面的链接查看原文
https://www.psdevwiki.com/ps3/Talk:Harddrive

开工前的准备工作

1)首先,安装(我推荐安装,因为大陆众所周知的原因,部署编译环境非常蛋疼)或以 LiveCD 的模式启动 Linux Mint ,在用户(本文默认为 woodu)目录下创建如下目录:

/home/woodu/ps3
/home/woodu/ps3/dev_hdd0
/home/woodu/ps3/dev_hdd1
/home/woodu/ps3/dev_hdd2
/home/woodu/ps3/dev_flash1
/home/woodu/ps3/dev_flash2
/home/woodu/ps3/dev_flash3

2)下载 PS3 HDD Keygen.sh 脚本并解压到 /home/woodu/ps3 执行或从这里手动从hex值生成 ata_key.binflash_key.bin,这些key 就是解开 ps3 硬盘的加密的密钥。

灵魂的5

3)安装必须的编译工具(apt install build-essential gcc linux内核header 等),并下载 bswap16.ko 的压缩包(此压缩包包含了针对 4.15.0-54-generic kernel in Linux Mint 19.2 的编译成品,在本文中将重新编译适合当前内核的版本)。

下载后直接进到 source 目录中,并 make 即可。之后将成品 bswap16.ko 也移动到 ps3 目录下。

获得素材:bswap16.ko

4)完成以上两步后,你的 ps3 目录应该是这样的,除 ata_key.binflash_key.bin 之外,其他的 key 可以帮你解开其他的分区,根据需要使用即可。

是这样的

开工

接下来需要在 Terminal(终端)里执行一系列指令,以正确的将硬盘挂载为可读写的分区。

为了防止将原版硬盘破坏,你可以使用 dd 命令或在 windows 下为硬盘制作整盘镜像,持有整盘镜像的你可以将它挂载为虚拟设备,比如使用下面的指令把你放在 /path/to/your.img 的文件挂载到 /dev/loop1

losetup loop1 /path/to/your.img

相反,如果你胆子大(像我一样买了好几台357c),可以尝试直接用移动硬盘盒或直接连接 SATA 到设备上,此时,使用的设备盘符就是 /dev/sdx (取决于你的实际情况,你需要使用一些系统指令确定 x 在你电脑上的真实值)。

1)打开 Terminal 并 sudo su 进入 root 下,因为设备操作一直需要 root 权限。

2)安装在准备工作时编译的 bswap16.ko ,它承担了将 Big Endian 到 Little Endian 的转换工作。

insmod /home/woodu/ps3/bswap16.ko

3)将镜像/物理设备进行挂载。

使用镜像:

cryptsetup create -c bswap16-ecb -d /dev/zero ps3hdd-bs /dev/loop1

使用物理磁盘:

cryptsetup create -c bswap16-ecb -d /dev/zero ps3hdd-bs /dev/sdx

4)使用准备工作获得的 ata_key.bin 和 357 使用的对应算法进行解密挂载:

cryptsetup create -c aes-xts-plain64 -d /home/woodu/ps3/ata_key.bin -s 256 ps3hdd /dev/mapper/ps3hdd-bs

并识别它的分区:

kpartx -a /dev/mapper/ps3hdd

5)稍事休息,确认磁盘已经正确解密:

ls -la /dev/mapper/

如果正确的话,应该可以看到 ps3hdd ps3hdd1 ps3hdd2 ps3hdd3 等一系列分区,分别指向 /dev/dm-* 。

其中 ps3hdd1 VFLASH ps3hdd2 dev_hdd0 ps3hdd3 dev_hdd1

6)继续挂载 VFLASH 吧。 VFLASH 是在第一层加密后又有第二层加密的双层结构,所以要把刚刚解密的指令再来一次。先挂载 VFLASH 容器:

cryptsetup create -c aes-xts-plain64 -d /home/woodu/ps3/vflash_key.bin -s 256 -p 8 ps3vflash /dev/mapper/ps3hdd1

并分区:

kpartx -a /dev/mapper/ps3vflash

7)上面的这一切都做完以后,应该就可以映射分区了。

首先,挂载主分区(如果需要写入的话,你需要安装可写 ufs2 的内核模块,并把指令里面的 ro 替换为 rw):

mount -t ufs -o ufstype=ufs2,ro /dev/mapper/ps3hdd2 /home/woodu/ps3/dev_hdd0

接下来是一些 FAT12 FAT16 FAT32 的分区,这些分区系统会自动识别,但自动挂载的分区可能会有问题,因此还是建议通过命令行手动挂载:

mount -t vfat /dev/mapper/ps3hdd3 /home/woodu/ps3/dev_hdd1
mount -t vfat /dev/mapper/ps3vflash2 /home/woodu/ps3/dev_flash1
mount -t vfat /dev/mapper/ps3vflash3 /home/woodu/ps3/dev_flash2
mount -t vfat /dev/mapper/ps3vflash4 /home/woodu/ps3/dev_flash3

有一些尺寸上的注意:dev_flash1 往往大概 200Mb 左右大,dev_flash2 往往在16Mb 左右, dev_flash3 往往只有约 512Kb

8)全部做完之后,就可以在系统里确认整个硬盘的挂载情况了。

lsblk -b /dev/sdx

9)挂载完毕之后,就获得了对 System357 硬盘的完全控制权。但请注意,千万不要修改对于此硬盘的任何权限和所有者的信息。如果要修改数据,请使用 root 用户,但你可以在普通用户的文件管理器内经过授权后浏览文件。

10)请记得,浏览/使用结束后卸载掉分区,尤其是你修改了内容的情况下。

umount -l /home/woodu/ps3/dev_hdd0
umount -l /home/woodu/ps3/dev_hdd1
umount -l /home/woodu/ps3/dev_flash1
umount -l /home/woodu/ps3/dev_flash2
umount -l /home/woodu/ps3/dev_flash3
kpartx -d /dev/mapper/ps3vflash && cryptsetup remove ps3vflash
kpartx -d /dev/mapper/ps3hdd && cryptsetup remove ps3hdd
cryptsetup remove ps3hdd-bs

常见问题(略)

我看了眼,感觉没什么特别的。

主要是如果需要确认是否解密成功(每一个调用 cryptsetup 的地方),需要看下已挂载节点的内容是否大部分填0,填0就问题不大。

致谢

感谢 graf_chokolo 在 PS3 逆向工程中卓有成效的贡献,并提供了 Linux 上的支持,没有他,kpartx 就不能支持 PS3 的分区表。

感谢 3141card 对于 PS3 硬盘的加密算法和读取方式的研究。

感谢 guerrini97 修复了作者原来旧脚本中的问题,并重构了 bswap16 模块,并为 nbd-client 提供能力。

感谢 Decaf Code 重构 bswap16 模块并兼容现有内核。

感谢 einsteinx2 指引解锁了 PS3 硬盘的 8% 空间,并为本文提供灵感。

感谢 Yugonibblit dump了 CECHG01 型号的分区表,并确认了该型号及衍生型号的加解密钥和对应算法。

感谢 mlody95pl 指出了本文的错误并编译了 UFS 模块。

后记

从我获得太鼓旧框开始的 2020 年下半年,真的是太精彩了,尤其是太鼓达人在中国国内的圈子里。现在,虹版在中国的代理也已经有官方暗示了,而官方框体也通过各种形式进到了国内。希望中国的太鼓达人有个美好的明天。

2019中国(北京)国际游乐设施设备博览会游记

中国国际展览中心顺义新馆,周围很空旷

音乐游戏

很久没有正经关注过街机行业的发展了。今年以来,大部分国内街机音游玩家关注的一些新的街机被逐步的引入国内。如去年下半年引入的 KONAMI 的 Dancerush Stardom (国内称为 舞律炫步),和 Sound Voltex 初代(国内称为 音律炫动)。这两个海外非常流行的音乐机台都是由 广东世宇科技股份有限公司 代理的。另一方面,华立科技也不甘落后,拿下了 taito 的 Groove Coaster 4 的代理。

这并不意味着太多的国内街机音乐游戏的改善。以 Sound Voltex (SDVX)来说,国内引进的版本是初代,而在这之前国内玩家或盗版商群体的自制版本已经到了第四代甚至最新代。另一方面,微博谣传华立也顺路代理了 maimai DX (下一代 maimai)的消息也让很多人误会至今。

谣传。

新机台的引进当然是值得开心的事情,但这些并不能彻底解决海外也在面临的压榨游戏厅生存空间的问题:机台涨价,但单次游戏价格非常有限。在这个问题上,国内的代理商和街机厂商也做了一些新的尝试。

以 DanceRush Stardom (DRS) 为例,中国版的机台是内置 4G 数据连接的,机台本身的网络并不需要游戏厅的网络支持,网络的服务费用也是完全从玩家侧收取。

具体的方案在这篇文章:
https://blog.samnya.cn/dance-rush-stardom-in-china/

中有所描述,简单来说就是在玩家投币游戏(付费给游戏厅支付机台租赁费用)之外,结合每次额外付费和包月额外付费(直接在游戏厅范围之外,比如微信平台)的模式,来为玩家提供额外的游戏体验。而在港澳台和国外的大部分地区,游戏机的投币收入是游戏厅和厂家共同分享的,所以海外玩家在正常支付机台租赁费用后,即可直接体验这些额外的体验内容。

国内的这种模式综合考虑了国内网络环境复杂但 4G 覆盖相对较好,以及游戏厅不接受分成模式这两个问题,我觉得是一种很棒的创新。但是也要注意到,高昂的价格也让不少玩家特别是出勤频率没有那么高的中、轻度玩家感到非常不适。

除了内忧,其实还有外患。比如在 DRS 稼动但没有进入国内的大半年里(2018.3 ~ 2018.11),国内一些善于模仿海外成熟产品的厂家也开发了一些游戏方法几乎一致的仿制品,价格也更低廉一些。比如这次在展会上看到的某厂家(毕竟不光彩就不点名了)的荧光舞动。

某英文名S开头的番禺厂家的 DRS 仿制品

这个机台我也有进行体验,判定和延迟都有较大问题,而且动画也不太连贯。但是在硬件上,都采用了近似外观和红外判定框体+Intel Realsense识别模块+LED地板这样的配置。硬件上的缺陷我们可以靠花钱买到,但真正做出一个好玩的“游戏”,只能说国内厂家真的要考虑自己的战略了。

说真的,在这种大型展会上可以同时看到仿品和本家,两家相距不过几个摊位,真是特别的让人觉得讽刺。

其实中国厂商仿制日本街机也不是没有先例,在这里也想请番禺这家厂商看一下, IGS 的 Dance Base 是怎样对 konami 已经停产的 Dance Evolution Arcade 进行思考和再创作的。

掌握了方法论,才是制胜的关键。

体感游戏

街机(Arcade)当然不止包括大型电玩。很多娱乐场景,比如公园或游乐场,里面的大型器械,其实也算作街机的一部分。在这次展会上我也看到了很多体感类型的游戏,比如在小时候公园里见到的可以模仿你说话或者动作的设备的升级版。

这是一款由哈工文旅开发的“部落酋长”机器人。通过腹部嵌入的微软 Kinect 2.0摄像头,可以识别出你做的动作,并给出具体的反应。

微软已经官方宣布停止对 Kinect 进行支持接近两年的时间了( The Kinect sensor and Kinect Adapter ceased manufacturing in November 2017. Microsoft no longer carries inventory of the Kinect Adapter. Customers can check other retail stores for adapter availability. An offer for people with a Kinect sensor upgrading from Xbox One ended in March 2017.
),但依然有大批的设备使用 Kinect 来进行开发。这使得后续的维护和升级都会产生很大的麻烦。但如果这些厂商只是抱着干一票就走的目的来做这些的话,倒也不是不能理解为什么他们这么大批量的使用这种停产设备了。

VR游戏也算是体感的一种。让我觉得有点意思的是这个 VR 赛车。

刨除掉硬蹭热点的港珠澳大桥,这个设计还是很有意思的:玩家坐在一块荧幕前操作方向盘,看上去和普通的赛车游戏无异,但却可以通过方向盘控制前面沙盘下面的车辆进行实际赛车游戏。这种沉浸感和旁人的观赏感觉自然是比软件绘制出来的比赛场景更好。稍微查阅了一下资料,这套设备的底层是成熟的图传方案,总体来说给人的感受还是很新奇,很好玩的。

Amimon Connex Prosight HD 淘宝有售

而另外的一些 VR 街机就显得没那么厚道了。比如我在很多家前都见到的 Beat Saber Arcade。

其实 Beat Saber 这个 Steam 上的 VR 游戏根本没有街机版。国内的不少厂家用几个音响包裹上一块屏幕,然后加个投币器和 Steam 的简易包装,外面再不加保护地嵌入 HTC Vive 套件,就组成了一个售价高达几万元的“VR 街机”。这种街机其实完全不符合 Arcade 的定义。其中最重要的一点就是 Vive 作为一个家用设备,它的线材强度完全不能达到商用的标准,意味着就需要一个服务员在旁边时刻看守。

失去了无人值守的街机,会让成本进一步扩大。想了一下不光是中国,去年在日本看到的 VR Zone 也是有人值守的,到了晚上这样的休息时间,整个区域就只能歇业。这对于依靠长时间营业扩大人群覆盖进而提高收入的街机行业来说,是很可怕的事情,因为它带来了大量的设备空置时间。

灯光展

除去器械,NEC 也带来了他们的灯光展设备。恰逢故宫灯光秀过去没多久,之前微博上就因为故宫的灯光秀过于浮夸,没有内涵引起了巨大的讨论。 NEC 作为老牌的投影设备厂家,也带来了他们的灯光秀解决方案。

但我觉得,技术上暂时不足可以找买办,精神上不足的问题,可能需要进一步思考一下了。

总结

其实还是有一些细节能体现出北京并不是适合街机的地方的:比如华立科技的展位就几乎没有带什么机器来,又比如大部分的没有提到的摊贩甚至只是来卖掉自己库存机器的。但总体来说,还是有不少有意思的产品出现在了展会上。说心里话,我肯定是希望街机这个行业能越来越好。纵使大势所趋行业式微,我也希望两点和行业融合,能让这个行业走的更远更好。