有没有任何已知的方法来保护Windows 8商店应用免受盗版?当我为Windows Phone 7/8写作时,我刚刚检查了WMAppPRHeader.xml中某些字段的存在。在Android中,我可以检查包签名,我有LVL库。在iOS中,它应该在包中搜索一些文件。
但是Windows 8商店应用程序有一些相似之处吗?
答案 0 :(得分:2)
是和否。
即使在上面提到的那些情况下,您所做的一切都可以被反汇编和覆盖。考虑一下,他们所要做的就是用NOP幻灯片替换汇编中的那些行(完全忽略反汇编),然后重新打包它,用自己的证书签署app包并将其安装在自己的机器上。
关键是他们必须安装它的方式。为了安装metro应用程序,他们需要获得开发人员的许可证并侧载应用程序。根据MSFT,他们跟踪(以某种方式)这个开发人员的侧载的使用,以确保您没有安装盗版应用程序,并确实将其用于测试和开发目的(您必须同意才能获得开发者执照)。
现在,如果有人能够进一步绕过这个系统,那么这不会对他们造成太大影响,但这就是DRM的工作方式。截至目前的技术状态,它并不完美(可能永远不会)。
要回答您的问题,Windows 8具有内置于系统的类似功能。滥用开发人员许可证的用户将丢失该许可证,并且只要系统正常工作,就无法侧载应用程序。
你可以做些事情让他们更难以拆解和重新打包你的应用程序并在商店里出售,就像在Android市场中非常普遍一样。看看Dotfuscator。他们有专门针对Marketplace应用的版本。
不幸的是,这是最好的。你可以让海盗更难,但并非不可能。您可以让应用程序哈希安装目录的内容并将其发送到要验证的移动服务,但是他们可以像定期一样轻松地运行它,嗅探正在发送的数据包,然后重放验证响应。您还可以在移动服务中创建签名证书,并验证响应是否来自移动服务本身,但他们也可以只替换该证书。您可以让它首先从您的移动服务中提取证书,但他们可以将您的应用程序指向自己的移动服务。
而且,再一次,他们可以完全绕过支票。
该系统已经到位,试图让盗版者更难以创建一个可用的系统,但是如果有盗版,那么就有了一种方法。