【问题标题】:How to Get Exact Location and Angles of Sectors on CD or DVD (Data Position Measurement)?如何获得 CD 或 DVD 上扇区的准确位置和角度(数据位置测量)?
【发布时间】:2014-04-15 21:10:40
【问题描述】:

我正在开发一种复制保护。它必须能够使用扇区角度或扇区的确切物理位置(数据位置测量)等功能来识别光盘。 所以问题是我可以使用哪些功能来执行此操作,以及如何获取有关它们的一些信息,尤其是扇区的角度?

如您所知,要点是每次复制磁盘时这些功能都必须更改。

首选语言是 C++ 和 C#。

谢谢。

【问题讨论】:

    标签: c# c++ disk copy-protection


    【解决方案1】:

    基本上你不能。

    扇区角度和读取半径是普通光驱不暴露的信息,您需要修改光驱的固件才能将这些信息发送给主机。

    还有更多:根据环境条件,驱动器对这些参数的看法可能会发生很大变化,并且生产公差(大多数中心孔不完全位于磁盘中心)将使其非常难以使用此信息,因为它会在同一磁盘的不同样本之间发生变化。

    最重要的是:这不会创建任何复制保护 - 如果您可以验证此信息,其他人也可以验证,从而允许他使用它来创建足够的副本。

    基本规则是:您可以从磁盘中提取以验证其真实性的任何信息也可以提取以复制它 - 这就是为什么复制保护方案在锁定的硬件(例如游戏机)中效果最好的原因),驱动固件真正适应它的地方。

    【讨论】:

    • 欧根请看this
    • 尤金请见this。在此页面中,作者展示了 SFCopy 应用程序的用法。这可能是一个非法的应用程序,但我的意思是可以从普通光驱的 CD 或 DVD 中获取此类信息。问题是我不知道它是如何工作的。当我分析 sfcopy 时,我发现它使用 IOCTL 代码 0x0004D004 调用 DeviceIoControl,但我在 MSDN 中没有找到此代码。如果您可以下载它并在 CD 上进行测试。谢谢
    • 这里提到的角度只是从获取数据所需的时间和旋转速度中插入的 - 这两个数据都可以从驱动器轻松访问。如果你愿意,可以称它们为“虚拟角度”。您可能已经注意到,您的帖子指向了一个成功的规避,因此“如果你能玩它,你就可以复制它”的基本规则仍然有效。
    • IOCTL 0x0004D004 我认为是 SCSI 直通,这是有道理的。
    【解决方案2】:

    精确测量不起作用,但这对于指纹识别不是必需的。您可以测量任何一对扇区之间的寻道时间。

    我故意说“指纹”。您首先需要为您的目标市场测量设备间的差异(可能是 PC,而不是 XBox,对吗?所以这是相当多的差异)。然后,您需要研究相关性 - 两轨和三轨寻道时间之间的关系是什么?

    最后,您需要提出一个适当的公差。磁盘上的污迹会导致寻道错误。

    【讨论】:

    • 每个磁盘副本的寻道时间是否不同?如果是,请解释我如何测量寻道时间?谢谢
    • @user3408433:如果你需要问这样的基本问题,那你就出局了。把这个问题留给更有经验的人。 (另外,这些问题在这里是题外话)
    猜你喜欢
    • 2016-02-15
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多