如何检测文件的使用权限 (DRM)

Posted

技术标签:

【中文标题】如何检测文件的使用权限 (DRM)【英文标题】:How to detect the usage rights (DRM) of a file 【发布时间】:2010-01-09 18:16:11 【问题描述】:

假设你有一个 .wma / .wmv 文件并且你想检测:

    是否受 DRM 保护? (希望如此)DRM 保护的详细信息(例如许可证何时到期等)?

有 C# / C++ api 吗?似乎 Windows Media Player 可以做到这一点 - 如果您单击该文件的属性...但资源管理器不显示此信息。

注意:我不相信这是一个微不足道的问题,我已经尝试了 taglib 并在网上搜索了大约 2 个小时的解决方案。

【问题讨论】:

【参考方案1】:

使用 Powershell 检测文件夹下 DRM 文件的一种方法是:-

$wmplayer = New-Object -ComObject "WMPlayer.OCX"
ls -recurse | ?  $_.Name -like "*.wma" -and [bool]::Parse($wmplayer.newMedia($_.FullName).getItemInfo("Is_Protected")) 

【讨论】:

这个答案原来正是我所需要的。我对其进行了一些测试以确保它可以通过管道传输到rm,然后这样做以删除我的音乐文件夹中的所有 DRM-cruft:ls -recurse | ? $_.Name -like "*.wma" -and [bool]::Parse($wmplayer.newMedia($_.FullName).getItemInfo("Is_Protected")) | rm 哇,这是一个非常有用的响应。它对我所有仍然具有 DRM 的 wma 文件都很有效。【参考方案2】:

来自Here。有关格式 SDK 的更多信息here

在 c# 中使用格式 SDK:

[DllImport("WMVCore.dll", CharSet=CharSet.Unicode)]

private static extern int WMIsContentProtected(string pwszFileName, out bool 
pfIsProtected);

【讨论】:

这只适用于 XP :( 好吧,我确实设法让它在 Win 7 上工作,但在 Win 2003.l 上确实失败了。l

以上是关于如何检测文件的使用权限 (DRM)的主要内容,如果未能解决你的问题,请参考以下文章

视频如何解除drm保护

检测 Widevine DRM HDCP 保护级别

如何去除亚马逊电子书的DRM

如何在 Android 中存储媒体 DRM 密钥以供离线使用

如何在 VPS 上的 React 中实现 DRM

如何在钴中播放drm内容