

macSubstrate — это платформенный инструмент для межпроцессного внедрения кода в macOS, с функцией, аналогичной Cydia Substrate на iOS. Используя macSubstrate, вы можете внедрять свои плагины (.bundle или .framework) в приложение macOS (включая приложения в песочнице) для изменения его поведения во время выполнения.
Всё, что вам нужно — получить или создать плагины для целевого приложения.
Никаких проблем с модификацией и повторной подписью кода исходного приложения.
Больше никаких дополнительных действий после обновления целевого приложения.
Очень просто установить или удалить плагин.
Автоматическая загрузка плагинов при каждом перезапуске целевого приложения.
Предоставление графического приложения для упрощения внедрения.
System Integrity Protection — это новая политика безопасности, применяемая к каждому выполняющемуся процессу, включая привилегированный код и код, выполняющийся вне песочницы. Политика расширяет дополнительную защиту на компоненты на диске и во время выполнения, позволяя изменять системные бинарные файлы только установщику системы и обновлениям ПО. Внедрение кода и прикрепление к системным бинарным файлам во время выполнения больше не разрешены.
скачайте macSubstrate.app, поместите в /Applications и запустите его.

предоставьте авторизацию при необходимости.
установите плагин, импортировав его или перетащив в macSubstrate.

запустите целевое приложение.
шаги 3 и 4 можно поменять местами
После установки плагина с помощью macSubstrate он вступает в силу немедленно. Но если вы хотите, чтобы он работал при каждом перезапуске целевого приложения или перезагрузке macOS, вам нужно оставить macSubstrate запущенным и разрешить ему автоматический запуск при входе в систему.
удалите плагин, когда он больше не нужен.

macSubstrate поддерживает плагины в формате .bundle или .framework, поэтому вам просто нужно создать корректный файл .bundle или .framework. Самое важное — добавить ключ macSubstratePlugin в info.plist со значением словаря:
| Key | Value |
|---|---|
TargetAppBundleID |
Пожалуйста, ознакомьтесь с демонстрационными плагинами demo.bundle и demo.framework для получения подробной информации.
macSubstrate также предоставляет шаблоны Xcode для удобного создания плагинов:
ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin
Запустите Xcode, и у вас появятся 2 новых шаблона плагинов.
Я также создал плагин для WeChat:
Отправка уведомления при получении сообщения с HongBao.
Отправка уведомления при получении сообщения, содержащего заданные ключевые слова.
Отмена отзыва сообщения и отправка уведомления.
Принимаются pull-реквесты ваших собственных плагинов в Plugins :)
SIP — это новая политика безопасности в macOS, которая помогает избежать потенциальных рисков безопасности. Её отключение означает потерю защиты от SIP.
Если вы устанавливаете плагин от разработчика, вы несёте ответственность за его безопасность. Если вы не доверяете ему, не устанавливайте его. macSubstrate поможет проверить подпись кода плагина, и я советую сканировать его с помощью VirusTotal. В любом случае, macSubstrate — это просто инструмент, и выбор плагина для установки остаётся за вами.
macSubstrate распространяется под лицензией MIT. Подробности см. в LICENSE.
macSubstrate был вдохновлён и создан с помощью следующих проектов:
CFBundleIdentifier целевого приложения, это сообщает macSubstrate, в какое приложение внедрять. |
Description | краткое описание плагина |
AuthorName | имя автора плагина |
AuthorEmail | адрес электронной почты автора плагина |