c# - 如何保护 Windows 8 应用程序免受盗版?

标签 c# security windows-store-apps anti-piracy

是否有任何已知的方法可以保护 Windows 8 商店应用程序免遭盗版?当我为 Windows Phone 7/8 编写时,我只是检查 WMAppPRHeader.xml 中是否存在某些字段。在 Android 中,我可以检查包签名,并且我有 LVL 库。在 iOS 中,搜索包内的某些文件就足够了。

但是 Windows 8 商店应用程序有类似的吗?

最佳答案

是和否。

几乎你所做的一切,即使在你上面提到的那些情况下,都可以被反汇编和覆盖。考虑一下,他们所要做的就是用 NOP 幻灯片替换汇编中的那些行(完全忽略反汇编),然后重新打包,使用自己的证书签署应用程序包并将其安装在自己的计算机上。

关键是他们安装这个的方式。为了安装 Metro 应用程序,他们需要获得开发人员许可证并旁加载该应用程序。根据 MSFT 的说法,他们(以某种方式)跟踪该开发人员侧载的使用情况,以确保您没有安装盗版应用程序,并且确实将其用于测试和开发目的(您必须同意才能获得开发者许可证)。

现在,如果有人能够进一步绕过这个系统,那么这不会对他们产生太大影响,但这就是 DRM 的工作方式。就目前的技术水平而言,它并不完美(并且可能永远不会)。

为了回答您的问题,Windows 8 系统内置了类似的功能。滥用开发者许可证的用户将失去该许可证,并且只要系统正常运行,就根本无法旁加载应用程序。

您可以采取措施让他们更难拆卸和重新打包您的应用程序并在商店中出售,就像 Android 市场上很常见的那样。查看 Dotfuscator。他们有一个专门针对 Marketplace 应用程序的版本。

不幸的是,这已经是最好的了。你可以让盗版变得更加困难,但并非不可能。您可以让应用程序对安装目录的内容进行哈希处理,并将其发送到移动服务进行验证,但他们也可以轻松地定期运行一次,嗅探正在发送的数据包,然后重放验证响应。您还可以在移动服务中创建签名证书并验证响应是否来自移动服务本身,但他们也可以仅替换该证书。您可以让它首先从您的移动服务中提取证书,但他们可以将您的应用程序指向他们自己的移动服务。

而且,他们可以完全绕过检查。

该系统已经设置了 DRM,试图让盗版者更难创建可用的系统,但对于盗版来说,只要有意愿,就有办法。

关于c# - 如何保护 Windows 8 应用程序免受盗版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22255057/

相关文章:

c# - 如何判断三角形的三个顶点是循环顺序还是反循环顺序?

security - SharePoint 和 SAML : Is there any guard against a replay attacks?

android - 使用 Android 设备凭据访问应用程序的关键部分

javascript - 具有共享 session 和用户身份验证的 WebSockets 和 HTTP 安全性

c# - 从头开始为 Windows 8.1 创建 MvvmCross Store 应用程序的过程?

c# - 如何确定字符串是希伯来日期还是公历日期?

c# - 字典初始化在 C# 中如何工作?

c# - 使用匿名类型的 LINQ GroupBy 工作得比它应该的更好

css - ListView 删除元素边框和复选标记

windows-store-apps - Windows App 项目不支持应用程序