Dim*_*ima 8 windows authenticode appx win-universal-app
通用Windows应用程序位于.appx文件中,该文件只是一堆文件和元数据的压缩包。大多数元数据文件在 Microsoft 网站上都有详细记录,并且易于解析和/或重新生成。然而 AppxSignature.p7x 仍然是个谜。
从这张图(来源):

AppxSignature.p7x 应该具有 AppxBlockMap.xml 的哈希值、内容和目录哈希值以及签名。但是我找不到 AppxSignature.p7x 文件本身的任何文档。理想情况下,我想使用替代工具来生成和验证此签名,例如 openssl/gnutls 或类似工具。其实际用途是在 Linux 上更新和重新打包应用程序,并为 Windows 应用商店准备 .appxupload 文件。
正如您链接到的博客文章中所述,AppxBlockMap.xml 文件存储包中每个文件的加密块哈希值。当使用authenticode 对包进行签名时,该文件将通过数字签名进行验证和保护。
因此,在 Windows 上,您有两个工具:
通过 Windows API,您可以使用Packaging API执行与 MakeAppx 相同的操作 ,并且可以使用SignerSign 函数执行与 SignTool 相同的操作。
恕我直言,整个 MakeAppx 过程没有记录,但块图模式实际上在这里描述:Package block map schema reference,相对容易理解。
PE 文档的 Authenticode 签名记录如下:Windows Authenticode Portable Executable Signature Format
但它仅适用于 PE(.dll、.exe 等)文件(请注意,也可以对 .CAB 文件进行签名),并且我不认为 SignerSign 如何构建 AppxSignature.p7x 已记录。但是,这里有一个开源工具可以在这里执行此操作: https: //github.com/facebook/fb-util-for-appx。您会注意到此文件https://github.com/facebook/fb-util-for-appx/blob/master/PrivateHeaders/APPX/Sign.h声明应用作签名输入的内容。我不知道他们从哪里得到这些信息。
| 归档时间: |
|
| 查看次数: |
6664 次 |
| 最近记录: |