大家可能都知道,要从光盘中获取数据,需要使用激光束来检测光盘轨道上的凹坑和平地。
现在,传统光盘并不是100%平整的,它们的轨道经常会有微小的波动。 这些缺陷在读取数据时是完全无法察觉的,因为激光可以在读取时自动校准。
这正是索尼复制保护方法的基础: 子CPU可以读取光盘上的目录(Table of Contents,TOC),这些目录是用一种预定义的频率刻制的,非正式地称为摇摆槽(Wobble Groove),这种频率只在母盘制作过程中使用,无法通过传统刻录机复制。 TOC位于光盘的内部(称为"导入"(Lead-In)区),指示激光如何在整个光盘中导航。 此外,作为一种容错机制,它还会重复多次。
在 PS1 游戏的 TOC 中,嵌入了以下字符串之一:
- SCEA -> 美国索尼电脑娱乐。
- SCEE -> 欧洲索尼电脑娱乐。
- SCEI -> 日本索尼电脑娱乐。
可以想象,光驱也会使用这种技术进行锁区。
击败
另一方面,这种检查只在开始时执行一次,因此在通过检查后手动交换光盘可能会破解这种保护......并有损坏光驱的风险。 后来,一些游戏自己动手,经常在游戏中重新初始化硬盘,以便再次执行检查,这样做是为了防止用户使用 "交换技巧"。
另外,还可以在游戏机中焊接编程了模拟摇摆信号的微小电路板。 这些电路板被称为改机芯片(Modchips),虽然在法律上有问题,但却非常受欢迎。
报复
模拟器的使用对发行商来说也是一种威胁。 因此,一些游戏包含了自己的检查(主要是校验和),以打击任何类型的未经授权的使用或修改。
我听说其中一种检查方法是故意重新初始化光驱,然后让它读取无法通过摇摆槽检查的特定扇区。 如果这样做还是成功解锁了光驱,那么游戏(仍然保存在RAM中)就会很高兴地显示其反盗版材料。 请注意,这种方法也会影响使用正版游戏的改装游戏机。
后来,索尼提供了一个名为Libcrypt的库,利用两种方法加强了复制保护措施:
- 从硬件方面来说,扇区的校验和存储在光盘的子通道中。
- 光盘子通道传统上存储元数据,主要用于引导光驱。 用户无法访问这些子通道,传统的光驱也很少允许手动写入这些子通道。
- 在软件方面,游戏的不同点都嵌入了一组例程,用于获取校验和值并将其与其他值混合。 这样做的目的是为了减少模拟器和改机芯片的影响。