

macSubstrate es una herramienta de plataforma para la inyección de código entre procesos en macOS, con una función similar a Cydia Substrate en iOS. Usando macSubstrate, puedes inyectar tus plugins (.bundle o .framework) en una app de macOS (incluyendo apps en sandbox) para modificarla en tiempo de ejecución.
Todo lo que necesitas es obtener o crear plugins para tu app objetivo.
Sin problemas con la modificación y la firma de código de la app objetivo original.
No más trabajo después de que la app objetivo sea actualizada.
Muy fácil de instalar o desinstalar un plugin.
Carga automática de plugins cada vez que la app objetivo se reinicia.
Proporciona una app con interfaz gráfica para facilitar la inyección.
La Protección de Integridad del Sistema es una nueva política de seguridad que se aplica a todos los procesos en ejecución, incluido el código privilegiado y el código que se ejecuta fuera del sandbox. La política extiende protecciones adicionales a los componentes en disco y en tiempo de ejecución, permitiendo que solo el instalador del sistema y las actualizaciones de software modifiquen los binarios del sistema. Ya no se permiten la inyección de código y los attachments en tiempo de ejecución a los binarios del sistema.
descarga macSubstrate.app, colócalo en /Applications y ejecútalo.

concede autorización si es necesario.
instala un plugin importándolo o arrastrándolo a macSubstrate.

lanza la app objetivo.
los pasos 3 y 4 se pueden intercambiar
Una vez que un plugin es instalado por macSubstrate, surtirá efecto de inmediato. Pero si quieres que funcione cada vez que la app objetivo se reinicie o macOS se reinicie, necesitas mantener macSubstrate ejecutándose y permitir que se inicie automáticamente al iniciar sesión.
desinstala un plugin cuando ya no lo necesites.

macSubstrate admite plugins de .bundle o .framework, por lo que solo necesitas crear un archivo .bundle o .framework válido. Lo más importante es agregar una clave macSubstratePlugin en el info.plist, con el valor de diccionario:
| Clave | Valor |
|---|
Consulta los plugins de demostración demo.bundle y demo.framework para más detalles.
macSubstrate también proporciona Plantillas de Xcode para ayudarte a crear plugins de forma conveniente:
ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin
Lanza Xcode, y aparecerán 2 nuevas plantillas de plugin para ti.
También he creado un plugin para WeChat:
Te envía una notificación cuando recibes un mensaje de HongBao.
Te envía una notificación cuando recibes un mensaje que contiene palabras clave personalizadas.
Anti-recuperación de mensajes y te envía una notificación.
Se aceptan pull requests de tus propios plugins en Plugins :)
macSubstrate se distribuye bajo la licencia MIT. Consulta LICENSE para más detalles.
macSubstrate está inspirado y creado con la ayuda de los siguientes proyectos:
TargetAppBundleID | el CFBundleIdentifier de la app objetivo, esto le dice a macSubstrate en qué app inyectar. |
Description | breve descripción del plugin |
AuthorName | nombre del autor del plugin |
AuthorEmail | correo electrónico del autor del plugin |