В Mountain Lion я знаю, что некоторые приложения, включая все приложения в Mac App Store, имеют цифровую подпись разработчика, поэтому, если они будут изменены, подпись не будет совпадать, и это вызовет всевозможные ошибки (и ситуацию будет увеличиваться со следующим выпуском операционной системы ...).
У меня вопрос, какие части пакета .app охватывает подпись? Если что - либо в Appname.app/Contents
изменениях (включая метаданные, как модифицированную дату для Contents
папки), делает это сломать подпись? Это просто двоичный файл Contents/MacOS
? Включены ли в подпись .plists? Resources
? Как конечный пользователь, что я могу взломать (если что-нибудь), не нарушая подпись?
macos
code-signing
Даниэль
источник
источник
Ответы:
TL; DR Разработчик должен выбрать, какие части приложения подписаны и не приводит к вмешательству в эти части какие-либо действия при запуске приложения. Вы должны использовать метод проб и ошибок, чтобы выяснить это для каждого отдельного приложения.
Разработчик в значительной степени должен решить, какие компоненты в их комплекте приложений представлены в печати, подписанной до того, как они доставят свое приложение. Все, что находится в печати, эффективно защищено от несанкционированного доступа, поскольку в большинстве случаев невозможно изменить эти вещи без изменения их хэш-сигнатур. Но это на самом деле не означает, что вы не можете вмешиваться в них.
В руководстве для разработчиков Apple сказано следующее:
Также отсюда не обязательно верно, что наличие неверной подписи для приложения означает, что оно не сможет запуститься. На странице написано:
Приложение может разрешить изменения.
Ваша лучшая ставка - это метод проб и ошибок с любым приложением, которое вы пытаетесь изменить. Это может сработать, а может и нет. Нет всегда верного ответа, который можно дать.
Если приложение было подписано, вы можете найти
Contents/CodeResources
файл илиContents/_CodeSignature/CodeResources
файл в комплекте. В этом файле перечислены все подписанные компоненты и их ожидаемые значения хеш-функции в комплекте. Это хорошее место, чтобы начать понимать, какие части приложения разработчик считает достаточно критичными, чтобы следить за изменениями.источник
Несмотря на то, что этот вопрос относится именно к Mountain Lion, в более новой версии macOS произошли важные изменения. В macOS 10.11 и более поздних версиях подписи, которые не покрывают весь код, отклоняются.
См. Техническую ноту TN2206 - глубина входа кода macOS .
источник