

macSubstrate ist ein Plattformwerkzeug für prozessübergreifende Code-Injektion unter macOS, mit ähnlicher Funktion wie Cydia Substrate unter iOS. Mit macSubstrate können Sie Ihre Plugins (.bundle oder .framework) in eine Mac-App (einschließlich sandboxed Apps) injizieren, um sie zur Laufzeit anzupassen.
Alles, was Sie brauchen, ist, Plugins für Ihre Ziel-App zu erhalten oder zu erstellen.
Keine Probleme mit Modifikation und Codesigning der ursprünglichen Ziel-App.
Keine weitere Arbeit, nachdem die Ziel-App aktualisiert wurde.
Super einfach, ein Plugin zu installieren oder zu deinstallieren.
Plugins werden automatisch geladen, sobald die Ziel-App neu gestartet wird.
Bietet eine GUI-App, um die Injektion viel einfacher zu machen.
System Integrity Protection ist eine neue Sicherheitsrichtlinie, die auf jeden laufenden Prozess angewendet wird, einschließlich privilegiertem Code und Code, der außerhalb der Sandbox ausgeführt wird. Die Richtlinie erweitert den Schutz auf Komponenten auf der Festplatte und zur Laufzeit und erlaubt nur die Modifikation von Systembinärdateien durch den Systeminstaller und Software-Updates. Code-Injektion und Laufzeitattachments an Systembinärdateien sind nicht mehr erlaubt.
Laden Sie macSubstrate.app herunter, legen Sie es in /Applications ab und starten Sie es.

Erteilen Sie bei Bedarf die Autorisierung.
Installieren Sie ein Plugin durch Importieren oder Ziehen in macSubstrate.

Starten Sie die Ziel-App.
Schritt 3 und Schritt 4 können vertauscht werden
Sobald ein Plugin von macSubstrate installiert wird, wird es sofort wirksam. Wenn Sie jedoch möchten, dass es bei jedem Neustart der Ziel-App oder nach einem Neustart von macOS funktioniert, müssen Sie macSubstrate laufen lassen und ihm erlauben, sich automatisch beim Anmelden zu starten.
Deinstallieren Sie ein Plugin, wenn Sie es nicht mehr benötigen.

macSubstrate unterstützt Plugins im Format .bundle oder .framework, sodass Sie lediglich eine gültige .bundle- oder .framework-Datei erstellen müssen. Das Wichtigste ist, einen Schlüssel macSubstratePlugin in die info.plist mit dem Dictionary-Wert einzufügen:
| Key | Value |
|---|
Bitte überprüfen Sie die Demo-Plugins demo.bundle und demo.framework für Details.
macSubstrate bietet auch Xcode-Vorlagen, um Ihnen das Erstellen von Plugins bequem zu machen:
ln -fhs ./macSubstratePluginTemplate ~/Library/Developer/Xcode/Templates/macSubstrate\ Plugin
Starten Sie Xcode, und es werden 2 neue Plugin-Vorlagen für Sie erscheinen.
Ich habe auch ein Plugin für WeChat erstellt:
Sendet Ihnen eine Benachrichtigung, wenn Sie eine HongBao-Nachricht erhalten.
Sendet Ihnen eine Benachrichtigung, wenn Sie eine Nachricht mit benutzerdefinierten Schlüsselwörtern erhalten.
Verhindert das Zurückrufen von Nachrichten und sendet Ihnen eine Benachrichtigung.
Pull-Requests Ihrer eigenen Plugins sind im Plugins-Verzeichnis willkommen :)
macSubstrate wird unter der MIT-Lizenz veröffentlicht. Siehe LICENSE für Details.
macSubstrate wurde inspiriert und erstellt mit Hilfe der folgenden Projekte:
TargetAppBundleID | die CFBundleIdentifier der Ziel-App, dies teilt macSubstrate mit, in welche App injiziert werden soll. |
Description | Kurzbeschreibung des Plugins |
AuthorName | Name des Autors des Plugins |
AuthorEmail | E-Mail des Autors des Plugins |