【发布时间】:2016-12-02 17:01:13
【问题描述】:
通用 Windows 应用程序位于 .appx 文件中,该文件只是一堆文件和元数据的压缩包。大多数元数据文件都在 Microsoft 网站上广泛记录,并且解析和/或重新生成很简单。但是 AppxSignature.p7x 仍然是个谜。
从此图表 (source):
AppxSignature.p7x 应该包含 AppxBlockMap.xml 的哈希值、内容和目录哈希值以及签名。但是我找不到 AppxSignature.p7x 文件本身的任何文档。理想情况下,我想使用替代工具来生成和验证此签名,例如openssl/gnutls 或类似的。这样做的一个实际用途是在 Linux 上更新和重新打包应用程序,并为 Windows 应用商店准备 .appxupload 文件。
【问题讨论】:
-
没有记录 signtool 如何与 APPX 文件一起工作(仅记录了 PE 格式文件:download.microsoft.com/download/9/c/5/…),因为您应该在 Windows 上使用 SignerSign API(这就是 signtool 所做的秘密)。但是有一个开源工具应该可以做你想做的事情,这里叫做“fb-util-for-appx”:github.com/facebook/fb-util-for-appx
-
@SimonMourier 这是天赐之物!这就像我要重新实现的那样!如果您将此作为答案提交,我将奖励您,因为所有源代码不仅记录了所有的诡计,而且它是在 linux(甚至 mac)上生成 appx 包的现成工具。在非 Windows 上制作 appx 是我最终追求的目标。
标签: windows win-universal-app authenticode appx