

macSubstrate è uno strumento di piattaforma per l'iniezione di codice interprocesso su macOS, con una funzione simile a Cydia Substrate su iOS. Usando macSubstrate, puoi iniettare i tuoi plugin (.bundle o .framework) in un'app Mac (incluse le app in sandbox) per modificarla a runtime.
Tutto ciò di cui hai bisogno è ottenere o creare plugin per la tua app target.
Nessun problema con modifiche e codesign per l'app target originale.
Nessun ulteriore lavoro dopo l'aggiornamento dell'app target.
Super facile installare o disinstallare un plugin.
Caricamento automatico dei plugin ogni volta che l'app target viene riavviata.
Fornisce un'app GUI per rendere l'iniezione molto più semplice.
System Integrity Protection è una nuova politica di sicurezza che si applica a ogni processo in esecuzione, incluso codice privilegiato e codice che viene eseguito al di fuori della sandbox. La politica estende protezioni aggiuntive ai componenti su disco e a runtime, permettendo solo ai binari di sistema di essere modificati dall'installer di sistema e dagli aggiornamenti software. L'iniezione di codice e gli attaccamenti runtime ai binari di sistema non sono più permessi.
scarica macSubstrate.app, mettilo in /Applications e avvialo.

concedi l'autorizzazione se necessario.
installa un plugin importandolo o trascinandolo in macSubstrate.

avvia l'app target.
il passaggio 3 e il passaggio 4 possono essere scambiati
Una volta che un plugin è stato installato da macSubstrate, avrà effetto immediatamente. Ma se vuoi che funzioni ogni volta che l'app target viene riavviata o macOS viene riavviato, devi mantenere macSubstrate in esecuzione e consentirgli di avviarsi automaticamente al login.
disinstalla un plugin quando non ti serve più.

macSubstrate supporta plugin di tipo .bundle o .framework, quindi devi solo creare un file .bundle o .framework valido. La cosa più importante è aggiungere una chiave macSubstratePlugin nel info.plist, con il valore di un dizionario:
| Key | Value |
|---|---|
Si prega di controllare i plugin demo demo.bundle e demo.framework per i dettagli.
macSubstrate fornisce anche Xcode Templates per aiutarti a creare plugin comodamente:
ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin
Avvia Xcode e troverai 2 nuovi template per plugin.
Ho anche creato un plugin per WeChat:
Ti invia una notifica quando ricevi un messaggio HongBao.
Ti invia una notifica quando ricevi un messaggio contenente parole chiave personalizzate.
Messaggio anti-recall e ti invia una notifica.
Benvenuti pull request dei vostri plugin in Plugins :)
macSubstrate è rilasciato sotto licenza MIT. Vedi LICENSE per i dettagli.
macSubstrate è ispirato e creato con l'aiuto dei seguenti progetti:
TargetAppBundleID |
il CFBundleIdentifier dell'app target, questo dice a macSubstrate in quale app iniettare. |
Description | breve descrizione del plugin |
AuthorName | nome dell'autore del plugin |
AuthorEmail | email dell'autore del plugin |