Windows 应用认证工具包 - 安全功能错误

Posted

技术标签:

【中文标题】Windows 应用认证工具包 - 安全功能错误【英文标题】:Windows App Certification Kit - Security Features error 【发布时间】:2018-03-23 09:59:06 【问题描述】:

我正在开发一个 UWP 应用程序,我遇到了一个关于 Windows 应用程序认证工具包 (WACK) 的奇怪问题。

应用程序本身运行良好,但是当我通过 WACK 测试应用程序时,它总是无法通过认证,说 /SomePackagePath/sni.dll failed AppContainerCheck. 此外,受支持的 API 测试显示了一长串我的应用程序不使用但 WACK 认为的不受支持的 API确实如此。我不知道它为什么会这样做。

我创建了许多包并尝试修复我认为可能有问题但无济于事的代码隐藏。我尝试在互联网上搜索错误,发现我的应用程序应该启用.Net native tool chain,我检查了项目设置,它已经启用。

WACK 还提到了一些应该设置的链接器选项,但我不知道如何在 VS 2017 中设置这些链接器选项。我使用的是最新的 VS 2017 和所有更新。关于做什么的任何建议?任何帮助将不胜感激。

如果有人需要,我可以提供更多信息。

【问题讨论】:

【参考方案1】:

WACK 报告已经说得很清楚了。 “sni.dll”调用了一些 UWP 不支持的 API。如果“sni.dll”是你自己做的,我建议你最好检查一下它的源代码。您可以查看.NET for UWP apps 文档以查看此 dll 是否调用了一些不受支持的 API。如果此 DLL 不是您制作的,您可以先将其从您的项目中删除并创建一个包以查看它是否能够通过 WACK。然后,您将知道这个问题是否是由于这个 DLL 造成的。

此外,您可以调试您的代码以查看启用“使用 .NET Native Tool chain 编译”和“优化代码”时是否会出现异常。

【讨论】:

首先,我没有添加 sni.dll 它是从哪里添加 idk 的。第二,我没有像之前所说的那样调用任何这些 API。正如你提到的,我确实调试了我的代码,并且应用程序运行良好,没有异常或错误。我应该特别寻找一些东西吗? 如果有,请提供minimal reproducible example,否则论坛很难帮你诊断这个问题。【参考方案2】:

我设法找到了罪魁祸首,它与Jint nuget 包有关。显然它使用了一些 UWP 系统中不允许使用的 API,sni.dll 也是其中的一部分。

【讨论】:

以上是关于Windows 应用认证工具包 - 安全功能错误的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 Windows App 认证工具包平台版本启动失败

Windows Hello 可绕过漏洞进行身份认证

Windows 应用认证工具包测试结果:应用未创建所需的注册表项

如何使用 Windows 应用认证工具包修复调试配置失败?

如何在 C# 控制台或 WinForms 应用程序中使用 Windows 安全的确认证书弹出窗口选择证书?

分享Java资深架构师的成长之路,一文全懂