Как я могу определить, подписан ли определенный файл .app

45

Get Info для .app не производит информацию о подписи. Например, в Windows, щелкнув правой кнопкой мыши> свойства, вы увидите, кто подписал файл.

Как я могу получить эту информацию для данного .app на OS X?

JasonGenX
источник
Что произойдет, если вы посмотрите в Contents / _CodeSignature ??
GEdgar

Ответы:

51

Вы можете проверить файл, введя следующую команду в Терминале:

 codesign -dv /Applications/Whatever.app

Существует бесплатный инструмент, который реализует функции команды codeign и дополняет ее приятным графическим интерфейсом. Он называется RB App Checker (в App Store), а также сайтом, описывающим программу http://brockerhoff.net/RB/AppCheckerLite/

Мне ничего не нужно, кроме этих двух инструментов для проверки подписи кода в OS X, так что, надеюсь, они соответствуют вашим потребностям. Проверьте AppChecker, если ваш Mac не имеет кодового знака (некоторым более старым требовался Xcode, чтобы получить этот инструмент перед поставкой привратника).

Относительно того, как вы узнали бы, ОС будет показывать ненадежные приложения тусклыми и с общим значком, пока процесс привратника не утвердит пакет для запуска - но этот код все еще может быть подписан, так что вы не можете полагаться на визуальный ключ, который обязательно скажет если какой-то код подписан или не подписан - особенно учитывая, что на данном Mac может быть отключен гейткипер.

bmike
источник
16
-dvvv добавляет строки для центров сертификации, типа хеша и литерального хеша. -dv (или -dvvv) фактически не показывает, действительна или недействительна подпись. -v показывает, действительна ли подпись, а если нет, -vv также печатает измененные файлы.
Lri
1
@Lri Указанные центры сертификации - это просто текстовые строки. Любой может создать любой центр сертификации, который ему нравится, с любым именем. Итак, в дополнение к этому, как мы можем проверить, что хэши соответствуют надежным CA? Мы хотим, чтобы CandidateCDHash или CDHash? Установлено ли что-либо из этого, что не установлены фиктивные корневые права или тому подобное?
nealmcb