【问题标题】:How WinRT Metro style HTML5/JavaScript applications are packaged and protectedWinRT Metro 风格的 HTML5/JavaScript 应用程序是如何打包和保护的
【发布时间】:2011-09-16 09:44:29
【问题描述】:

我只是想知道 HTML5/JavaScript Metro 应用程序将如何被打包并防止逆转。

对于打包,我希望有某种签名的 zip/jar(在 MSDN 上没有提及 .appx),但为了保护,除了对 JavaScript 的严重混淆之外,我无法想象任何其他方式(可能是一个新的预编译/二进制文件)格式?)

如果保护不好,写 HTML5/JavaScript 应用程序不会蓬勃发展太多恕我直言。

【问题讨论】:

    标签: javascript html windows-8 microsoft-metro windows-runtime


    【解决方案1】:

    除了加密混淆之外,另一种选择是在第 3 方 WinRT 组件内实施专有算法/逻辑。通过这种方式,您可以确保您的专有算法因被编译而受到保护。当然,如果您选择在 .NET 中实现,那么有人可以对其进行逆向工程。

    这个想法是用 JS/HTML5 编写你的客户端,大概这会有点简单,因为你没有大量的专有信息。然后你用 C#/C++ 编写你的 WinRT 组件,其中包含你专有的“香肠制造过程”。您调用这个 WinRT 组件来创建一些带有一些数据输入的“香肠”。这种方法意味着您的香肠秘方是安全的,同时仍为您提供平台的简单性。

    这是一个可口的解决方案吗?

    【讨论】:

    • 那么这会是一个 COM 动态链接 (!) 香肠库吗?还是我错过了 JS 和 C++ 库之间的一些新绑定?
    • 我不确定我是否遵循您的要求。正如 Windows 运行时为操作系统本身提供库一样,您也可以编写自己的库并将它们与您的应用程序一起部署。 WinRT 组件可以用 C++ 或 C# 编写。这将与应用程序一起部署并以自然方式调用,就像第一方 Windows 运行时 API 一样。
    • 抱歉,被比喻套路了。我只是想弄清楚 JS 是创建 COM 对象并使用它们的方法和属性,还是使用让 JS 代码调用传统非 COM 库的新东西。
    • 好吧,Windows 运行时类似于 COM,因此,我建议允许 JS 调用本机或托管代码二进制文件(C++ 或 C#),但对象看起来就像一个带有方法、属性等的 JS 对象。您将无法将“任何旧 DLL”粘贴在那里并将其打包以供 JS 使用。它需要符合构建 Windows 运行时组件的要求,包括接口定义、运行时类的实现以及 JS 可以用来“理解”对象的元数据。
    • 谢谢,这对阐明主题大有帮助。
    【解决方案2】:

    我想知道同样的事情,我同意加密混淆将成为关键,尤其是在保护 Metro 风格应用程序的早期阶段。

    显然,在提供下载之前,MS 将使用代码扫描工具对所有代码进行彻底审查,甚至是混淆代码。我想这有多好还有待观察。我敢肯定在早期会有一些小问题和安全问题。

    这里有一个相当全面的安全指南,其中提到了“护栏”等,听起来很有趣。

    http://www.microsoft.com/download/en/details.aspx?id=27408

    抢劫甘利

    【讨论】:

    • 但是想想 Windows 商店外(或本地/离线)分布式 Metro 应用程序......如何验证和保护代码?
    • @devstonez 目前还没有关于“Windows Store Metro 应用之外”的故事。
    • @pavel 如果您正在查看 BUILD 会话,您可能会看到可以打包应用程序以供“本地”使用,从而生成 .appx、.cer 和用于证书注册的 bat。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多