

macSubstrate est un outil de plateforme pour l'injection de code interprocessus sur macOS, avec une fonction similaire à Cydia Substrate sur iOS. En utilisant macSubstrate, vous pouvez injecter vos plugins (.bundle ou .framework) dans une application Mac (y compris les applications sandboxées) pour la modifier à l'exécution.
Tout ce dont vous avez besoin est d'obtenir ou de créer des plugins pour votre application cible.
Aucun problème de modification et de signature de code pour l'application cible originale.
Plus aucun travail après la mise à jour de l'application cible.
Super facile à installer ou désinstaller un plugin.
Chargement automatique des plugins à chaque redémarrage de l'application cible.
Fournit une application GUI pour rendre l'injection beaucoup plus facile.
System Integrity Protection est une nouvelle politique de sécurité qui s'applique à chaque processus en cours d'exécution, y compris le code privilégié et le code qui s'exécute en dehors du sandbox. La politique étend des protections supplémentaires aux composants sur le disque et à l'exécution, ne permettant aux binaires système d'être modifiés que par l'installateur système et les mises à jour logicielles. L'injection de code et les rattachements à l'exécution aux binaires système ne sont plus autorisés.
téléchargez macSubstrate.app, placez-le dans /Applications et lancez-le.

accordez l'autorisation si nécessaire.
installez un plugin en l'important ou en le glissant dans macSubstrate.

lancez l'application cible.
les étapes 3 et 4 peuvent être interverties
Une fois qu'un plugin est installé par macSubstrate, il prendra effet immédiatement. Mais si vous voulez qu'il fonctionne à chaque redémarrage de l'application cible ou au redémarrage de macOS, vous devez laisser macSubstrate en cours d'exécution et lui permettre de se lancer automatiquement à l'ouverture de session.
désinstallez un plugin lorsque vous n'en avez plus besoin.

macSubstrate prend en charge les plugins de type .bundle ou .framework, vous devez donc simplement créer un fichier .bundle ou .framework valide. Le point le plus important est d'ajouter une clé macSubstratePlugin dans le info.plist, avec la valeur de dictionnaire suivante :
| Clé | Valeur |
|---|
Veuillez consulter les plugins de démonstration demo.bundle et demo.framework pour plus de détails.
macSubstrate fournit également des Templates Xcode pour vous aider à créer des plugins facilement :
ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin
Lancez Xcode, et 2 nouveaux templates de plugin seront disponibles pour vous.
J'ai également créé un plugin pour WeChat :
Vous envoie une notification lorsque vous recevez un message HongBao.
Vous envoie une notification lorsque vous recevez un message contenant des mots-clés personnalisés.
Anti-rappel de message et vous envoie une notification.
Les pull requests de vos propres plugins sont les bienvenues dans Plugins :)
macSubstrate est distribué sous la licence MIT. Voir LICENSE pour plus de détails.
macSubstrate a été inspiré et créé avec l'aide des projets suivants :
TargetAppBundleID | le CFBundleIdentifier de l'application cible, cela indique à macSubstrate dans quelle application injecter. |
Description | brève description du plugin |
AuthorName | nom de l'auteur du plugin |
AuthorEmail | email de l'auteur du plugin |