6

在通过 Windows 8 AppStore 分发之前,必须检查所有 Metro 应用程序。这是否意味着不允许使用代码混淆?或者仍然有可能,并且在这样的检查中只监控一些特定的方面?

4

3 回答 3

5

这是一个扶手椅式答案,其中包含一些我想到的东西:

  1. 如果 C++ 应用程序依赖于到运行时或 API 的动态链接,即使是 C++ 应用程序也可能会被分析,WinRT 应用程序就是这种情况。Microsoft 批准理论上可以包括使用特殊沙箱和/或操作系统挂钩对您的应用程序进行自动或人工指导测试,这些挂钩能够检测您的应用程序是否尝试某些被禁止的操作。

  2. 在底层,WinRT 的 C++ 应用程序更像原生 C++ 应用程序,而不是 C++/CLI,因此在所有条件都相同的情况下,不需要像 C# 那样进行混淆。

  3. 您仍然可以构建以 WinRT 为目标的 C# 应用程序,但您的代码仍将编译为 CIL 并在 CLR(或多或少)中运行,通过 Microsoft 提供的包装器调用 WinRT。因为是 CIL,所以混淆的问题应该和 C#/.NET 混淆的问题一般。

于 2011-09-22T20:53:57.783 回答
5

以下是一些事实:

  • Marketplace for WP7 允许混淆 C# 应用程序(甚至 MS 他建议这样做),我看不出 Windows AppStore 禁止此类应用程序的任何原因。
  • 几乎可以肯定,一些供应商将提供兼容的 C++ 混淆器。
  • 你应该关心你的客户而不是饼干。:)
  • 许多用于代码混淆的黑客行为将被禁止。

请记住,如果您有一些想要隐藏的逻辑,请创建一个 Web 服务并在您的客户端应用程序中使用它。最好花时间构建更好的应用程序,修复错误等。

没有骰子,如果有人可以访问二进制文件只是有人破解它的时间问题。

于 2011-09-23T00:30:55.607 回答
1

WinRT 仍然可以进行混淆处理。Application Certification Kit 的检查涵盖了很多方面,包括元数据和 IL 验证。就像旧的 peverify 一样。

于 2012-10-16T04:38:13.457 回答