如何确定某个.app文件是否已签名


45

在.app上获取信息不会产生签名信息。例如,在Windows上,右键单击>属性将显示谁对该文件签名。

如何在OS X上获取给定.app的信息?


如果查看Contents / _CodeSignature会发生什么?
GEdgar

Answers:


51

您可以通过在终端中发出以下命令来检查文件:

 codesign -dv /Applications/Whatever.app

有一个免费工具可实现codesign命令的功能,并通过漂亮的GUI对其进行扩展。它称为RB App Checker(在App Store上),还有一个描述程序的网站http://brockerhoff.net/RB/AppCheckerLite/

除了这两个工具,我不需要任何东西来检查OS X上的代码签名,因此希望它们能够满足您的需求。如果您的Mac没有代码签名,请签出AppChecker(一些较早的版本需要Xcode才能在网闸出厂之前获得该工具)。

至于您将如何知道,在网闸进程批准运行包之前,操作系统将不信任的应用程序显示为暗淡且带有通用图标-但该代码仍可以签名,因此您不必依靠视觉提示就能知道如果某些代码已签名或尚未签名-特别是考虑到可以在给定的Mac上禁用网守。


16
-dvvv为证书颁发机构,哈希类型和文字哈希添加行。-dv(或-dvvv)实际上并不显示签名有效还是无效。-v显示签名是否有效,如果不是,则-vv还打印修改后的文件。
Lri

1
@Lri列出的证书颁发机构只是文本字符串。任何人都可以使用任何名称创建他们喜欢的任何证书颁发机构。因此,除此之外,我们如何检查散列是否与可信赖的CA相对应?我们需要CandidateCDHash还是CDHash?这是否表明没有安装伪造的根权限或类似权限?
nealmcb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.