问题标签 [fairplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
631 浏览

download - 保护drm'd内容客户端是否合理

更新:这个问题专门关于保护(加密/混淆)内容客户端与在从服务器传输之前进行。采用像 itune 这样的方法的优点/缺点是什么 - 其中文件在传输之前没有被加密/混淆。

正如我在原始问题的注释中添加的那样,我们需要遵守一些合同(对于大多数实施 drm 的服务来说就是这种情况)。我们推动免费的drm,大多数内容提供商的交易都在上面,但这并不能免除我们已经承担的义务。


我最近阅读了一些有关 itunes / fairplay 如何接近 drm 的信息,并且没想到会看到服务器实际上在没有任何保护的情况下提供文件。

这个答案中的引用似乎抓住了这个问题的精神。

目标应该只是“让诚实的人保持诚实”。如果我们走得更远,只会发生两件事:

  1. 我们打了一场我们无法赢得的战斗。想作弊的人会成功。
  2. 我们让产品更难使用,从而伤害了我们产品的诚实用户。

我看不到对这里的诚实用户有任何影响,文件将与用户相关联——无论这种情况发生在客户端还是服务器端。这确实为 1 中的人提供了另一个机会。

额外的一点信息:客户端环境是 adobe air,涉及多种内容类型(音乐、视频、flash 应用程序、图像)。

那么,像 itune 一样公平竞争,保护媒体客户端是否合理。

注意:我认为牢不可破的 DRM 是一个无法解决的问题,因为大多数人都在寻找这个问题的答案,所以对它的需求与它已经与内容提供商签订了合同......在合理的最大努力中。

0 投票
3 回答
2643 浏览

encoding - SDK 使用 FairPlay DRM 对媒体进行编码?

我的公司经营一个视频网站。我们目前通过流媒体提供我们的内容,并通过 WMRM DRM 下载到 Windows PC。我们希望为 Mac 提供可下载的内容,但需要使用 FairPlay DRM 系统保护它们。

这是我们可以做的事情,还是 FairPlay 是专有的并且只允许由 Apple 编码?是否有基于 Windows 的 SDK/工具包可让我们扩展我们的编码器软件以创建受 FairPlay 保护的文件?我更喜欢 SDK,这样我们就可以开发进程内解决方案,而不必调用可执行文件。


(PS:我知道 DRM 不流行,但这不是我们的电话,而是工作室。所以我们可以选择通过 DRM 提供下载或根本不提供下载。请不要回复“DRM”之类的答案不好”或“DRM 不是答案”,因为那不是我的电话,甚至不是我公司的电话。)

0 投票
1 回答
2298 浏览

ios - IOS 应用程序提交加密/公平播放,如何做或自动

环顾四周,只需要快速了解应用程序本身是如何加密的。

默认情况下,在构建应用程序时,加载到测试设备等时它都是未加密的。

因此,当我们提交应用程序并构建它以进行分发时,它什么时候会被加密,因此当它部署在用户的手机上时,它不容易被逆向工程......

或者这是在构建/提交时必须发生的额外步骤?

0 投票
1 回答
353 浏览

epub - 提取期间的 Epub 源代码问题

我正在尝试“查看”我 ipad 上的交互式电子书 (.epub) 的源代码,它在 Ibooks 应用程序上运行良好。

我所做的是将电子书的文件扩展名 .epub 更改为 .zip 并解压缩。问题是,每当我尝试打开 epub 文件夹中的文件时,它们都会完全搞砸:

在此处输入图像描述

问题出在哪里?(我测试的书在itunes商店《风与日》)

0 投票
2 回答
8864 浏览

ios - 解码 AirPlay 镜像协议

我希望我的应用程序将我的 iPad 2 的显示镜像到我的 Mac。

我已经发布了_airplay._tcp服务并且正在监听端口7100。该应用程序显示在AirPlay菜单中,Mirroring选项也在那里。视频和音频流完美运行。

但我不知道如何解码 FairPlay 加密 ( POST /fp-setup) 以支持 AirPlay 镜像。我参考了http://www.aorensoftware.com/blog/2011/08/20/exploring-airplay-mirroring-internals/。如果有人对如何做到这一点有任何想法,请告诉我。

0 投票
1 回答
3089 浏览

drm - 关于 Airplay Mirroring... fp-setup 之后的事情

我的项目是从我的 Android 设备中获取解密的 Airplay Mirrorred h.264 屏幕数据。
因为我对类似 AES 的东西一无所知......所以我跳过了这一步,在我的 iPad 和 AppleTV 之间用硬编码数据进行了全窥。

“非官方 Airplay 协议”开始。
类似于序列,我用“fp-setup”从我的 iPad 质疑。

检查AirTunesController 源代码非常有帮助,我从该代码中得到了很多提示。所以,我从我的 iPad、AppleTV 中获取了“FPLY”启动二进制文件。刚刚回复了我的 iPad,“fp-setup”步骤就完成了!

序列是..
从 iPad 收到 FPLY311,
我用 FPLY312 回答,
从 iPad 收到 FPLY313,
我回答 FPLY314.. 然后“POST /stream”带着一些二进制参数列表(bplist)来找我。
它看起来像..(从我的 adb logcat 中捕获)

D/Server(432):AIRPLAY 镜像服务器:检测到新连接
D/Server(432):AIRPLAY 服务器:添加了新连接
D/Server(432):BReNTT:/stream.xml
D/Server(432):BReNTT:/ stream.xml >> GET
D/Server(432): BReNTT: 响应 536 字节的内容
D/Server(432): BReNTT: /fp-setup, body size: 16
D/Server(432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x01 0x00 0x00 0x00 0x00 0x04 0x02 0x00 0x03 0xbb
D/Server(432):BReNTT:/fp-setup >> POST >> 311
D/Server(432):BReNTT:响应257字节内容
D/Server(432) : BReNTT: /fp-setup, body size: 164
D/Server(432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x03 0x00 0x00 0x00 0x00 0x98 0x01 0x8f 0x1a 0x9c
D/服务器(432):0x7D 0x0a 0xf2 0x57 0xb3 0x1f 0x21 0x21 0xf5 0xc2 0xc2 0xd2 0xbc 0x81 0x4c 0x4c 0x22d 0x2d 0x45
D/Server(432
) 432): 0xad 0x2c 0x91 0x1d 0x7f 0x3e 0x1e 0x7e 0xd4 0xc0 0x58 0x95 0x5d 0xff 0x3d 0x5c
D/Server( 432): 0xee 0xf0 0x14 0x38 0x7a 0x98 0x5b 0xdb 0x34 0x99 0x50 0x15 0xe3 0xdf 0xbd 0xac
D/Server( 432): 0xc5 0x60 0x47 0xcb 0x92 0x6e 0x09 0x3b 0x13 0xe9 0xfd 0xb5 0xe1 0xee 0xe3 0x17
D/Server( 432): 0xc0 0x18 0xbb 0xc8 0x7f 0xc5 0x45 0x3c 0x76 0x71 0x64 0x7d 0xa6 0x86 0xda 0x3d
D/Server( 432): 0x56 0x48 0x75 0xd0 0x3f 0x8a 0xea 0x9d 0x60 0x09 0x2d 0xe0 0x61 0x10 0xbc 0x7b
D/Server( 432): 0xe0 0xc1 0x6f 0x39 0x1c 0x36 0x9c 0x75 0x34 0x4a 0xe4 0x7f 0x33 0xac 0xfc 0xf1
D/Server( 432): 0x0e 0x63 0xa9 0xb5 0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67
D/Server( 432):0xc5 0x06 0x7f 0x2a
D/Server(432):BReNTT:/fp-setup >> POST >> 313
D/Server(432):BReNTT:响应...
D/Server(432):0x46 0x50 0x4c 0x59 0x03 0x01 0x04 0x00 0x00 0x00 0x00 0x14 0x0e 0x63 0xa9 0xb5
D/Server( 432): 0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67 0xc5 0x06 0x7f 0x2a
D/Server( 432): BReNTT: responding 142 bytes of content
D /服务器(432):BReNTT:/流>>发布!内容长度为 750

最后我得到了列表.. 带有 Param1 和 Param2。
它们分别是 AES 密钥和 AES 初始化向量数据,分别为 72 字节和 16 字节。而且,从同一个端口7100,突然间,iPad的屏幕二进制数据源源不断地向我传来。

键:deviceInfoTime 值=-422009852.719235
键:macAddress 值=64:20:0C:EF:DF:81
键:param1 为二进制类型。
BReNTT-调试(432):46 50 4C 59 01 02 01 00 00 00 00 3C 00 00 00 00
BReNTT-调试(432):88 E4 F8 2C 81 78 C1 8B 47 51 AC 24 B2 7C 0C 2A
BReNTT-调试( 432):00 00 00 10 C8 99 DC 69 65 C1 08 1D E6 A9 D9 66
BReNTT 调试(432):E2 BA 3E 34 54 8C DB C6 51 C3 22 DB 18 DC 22 F5
BReNTT 调试(432):8F E1 54 A6 0A EC EE 18
键:sessionID 值=-1483478994
键:deviceID 值=110088818777987
键:connectTime 值=0.009737
键:版本值=200.54
键:latencyMs 值=90
Key:fpsInfo type=4
Key:authTime Value=422009852.735252
Key:prepareTime Value=0.004542
Key:configTime Value=0.004692
Key:resolveDNSTime Value=0.008402
Key:timestampInfo type=4
Key:param2是二进制类型。
BReNTT-调试(432):66 A7 5D 63 6D 80 C8 30 19 95 2A EC 2D D7 2F 1C

而且..
这是我想问你的问题。

根据非官方的Airplay协议,
如果存在可选的Param1和Param2,那么屏幕数据是加密的,对吧?

如何处理这些 72 字节和 16 字节 AES 数据来解密来自我的 iPad 的 h.264 屏幕数据?

谢谢你。

0 投票
1 回答
1123 浏览

ios - AppStore 应用程序的 iOS IPA 重新打包/重新签名

问题描述

我需要控制 iOS 设备上的任意应用程序,我的计划是将可执行文件注入 IPA(实现远程控制逻辑的地方),然后重新打包。

由于应用程序应该在受控环境(特定设备)中运行,我计划使用我的配置文件和我的开发证书进行重新打包/签名。

首先,我正在尝试重新打包第 3 方应用程序而不注入任何代码,这是通过以下方式完成的:

以上对于我使用 Xcode 手动构建的应用程序非常有用,但是,当使用从 AppStore 下载的 IPA 时,这不适用于以下设备日志错误:

检查应用程序的“Mach-O”可执行文件,我已验证相关架构的“代码签名”部分已完全更改(通过“signcode”工具)。

问题

  • 为什么我不能重新打包我从 AppStore 下载的应用程序,而我手动创建的带有 Xcode 的应用程序已成功重新打包/签名?
  • 如何使用我的开发证书和配置文件重新打包/签署 AppStore 应用程序?
  • FairPaly 如何区分我手动生成的应用程序(使用 Xcode)和从应用商店下载的应用程序?appstore 应用程序有哪些手工制作的应用程序没有的残差?

参考

0 投票
1 回答
1438 浏览

ios - Fairplay SPC 请求返回 nil

我正在尝试使用 [AVAssetResourceLoadingRequest streamingContentKeyRequestDataForApp:contentIdentifier:options:error:]; 方法来获取 SPC 密钥,但我得到 nil 而不是预期的 SPC 值返回给我。我主要参考提供的示例 Fairplay 应用程序。我使用编码的请求 URL 主机字符串作为内容标识符,并使用从 SPC 服务器检索的 .DER 证书作为应用数据。有没有其他人遇到过这个问题?

这里 SPC 的输出为 nil。完整的错误描述如下:

0 投票
1 回答
2186 浏览

ios - Apple FairPlay 密钥服务器模块实现

有没有人设法实施这部分?Apple 已经发布了一些参考代码以及 FairPlay SDK(预览版),但有很多缺失的部分。是否有任何指南/教程可以帮助/指导实施?

0 投票
1 回答
631 浏览

ios - Fairplay SDK 和 IOS9

我在 IOS8.4.1 上使用了 Fairplay sdk,现在我已经将我测试的 iPad 更新到了 IOS9

所以要超级清楚我正在使用:OSX 10.10.5 (14F27) XCode 7.0 (7A220) IPad2 mini IOS9

使用 sdk 附带的测试客户端,我只是做了一个清理和重建,并没有改变在 IOS8 上运行良好的源代码中的任何内容,甚至没有接近工作,它永远不会到达 shouldWaitForLoadingOfRequestedResource 函数。我得到的只是:错误-1022,操作无法完成

它对 Fairplay SDK 附带的加密视频和未加密视频执行此操作。

所以我的问题是,是否有人使用 dev sdk 凭据成功播放了加密视频?