
Crescendo ist ein Swift-basierter Echtzeit-Ereignis-Viewer für macOS. Es nutzt Apples Endpoint Security Framework.


Apple hat einige neue Sicherheitsmechanismen eingeführt, die wir aktivieren müssen, um Crescendo zum Laufen zu bringen.
Stellen Sie sicher, dass Sie die App in Ihr /Applications-Verzeichnis verschoben haben, da die Systemerweiterung sonst nicht geladen wird.
Beim ersten Start werden Sie aufgefordert, die Systemerweiterung zu genehmigen, nachdem Sie auf die Schaltfläche „Start“ geklickt haben.
HINWEIS: Mir ist aufgefallen, dass es ein Problem gibt, bei dem die Systemeinstellungen keinen „Erlauben“-Button anzeigen. Ich nehme an, dies ist ein internes Problem, das Apple beheben muss. Ein Zurückklicken zu den Systemeinstellungen und erneutes Navigieren scheint das Problem zu beheben.

Sie müssen den Vollzugriff auf die Festplatte für die Systemerweiterung aktivieren.

Crescendo ist nur mit >=10.15.X und mindestens Xcode 10 kompatibel.
Dieses Projekt besteht aus drei Hauptkomponenten:
Es wird dringend empfohlen, diesen Code in einer virtuellen Maschine mit deaktiviertem SIP zu testen, da dieses Projekt die Endpoint-Security-Berechtigung, TCC und ordnungsgemäßes Signieren erfordert, wenn SIP aktiviert ist.
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequest aufrufensystemextensionsctl developer on
Wenn Sie Ihre eigene Anwendung signieren möchten, wird dringend empfohlen, die Apple-Dokumentation zu den Anforderungen an Systemerweiterungen und zur Notarisierung zu lesen.
Signieren und Berechtigungen sind keine triviale Aufgabe.
Ich habe meine .xproj-Datei in diese Version aufgenommen, um den Einstieg zu erleichtern. In Zukunft werde ich wahrscheinlich zur neuen xcconfig-Datei wechseln, da dies ein viel vernünftigerer Ansatz zu sein scheint, als xproj-Dateien zu committen. Wenn Sie einfach die Beispiel-CLI-Anwendung erstellen möchten, können Sie dies mit Xcode tun.
Um diese Anwendung zu erstellen und auf einem produktiven macOS-System auszuführen, benötigen Sie die Endpoint-Security-Berechtigung und ein Entwicklerzertifikat von Apple.
Das Crescendo-Framework kann problemlos mit jeder Swift-Anwendung gebündelt werden. Ich werde möglicherweise in Zukunft zu CocoaPods wechseln, bin aber derzeit nicht damit vertraut.
Bitte zögern Sie nicht, ein Issue zu erstellen, wenn Sie eine Funktion hinzugefügt haben möchten oder auf ein Problem stoßen. Wenn Sie einen Pull-Request beitragen möchten, stellen Sie bitte sicher, dass Sie swiftlint über Ihren Code ausführen, bevor Sie etwas beitragen.
Ich werde Versionen für die kompilierte + signierte App erstellen und sie nach Bedarf im Reiter „Releases“ bereitstellen.
Wenn Sie auf einem produktiven Mac arbeiten, sollten Sie SIP oder AMFI NICHT deaktivieren. Diese Anweisungen sind für Entwickler gedacht, die Codeänderungen vornehmen möchten.
Haben Sie die Systemerweiterung aktiviert, indem Sie auf die Schaltfläche „Erlauben“ in Systemeinstellungen -> Sicherheit & Datenschutz geklickt haben? Wenn nicht, werden Sie keine Ereignisse sehen.
Haben Sie den Vollzugriff auf die Festplatte in Systemeinstellungen -> Sicherheit & Datenschutz -> Datenschutz-Tab aktiviert? Wenn nicht, werden Sie keine Ereignisse sehen.
Wenn Sie auf Probleme stoßen, öffnen Sie die Console.app und suchen Sie nach crescendo oder <your_bundle_id>/com.suprhackersteve als Filter. Das sollte Ihnen bei der Fehlerbehebung helfen. Es ist auch eine gute Idee, im CrashReporter zu überprüfen, ob die Erweiterung abgestürzt ist oder mit fatalError beendet wurde.
Wenn Sie die Systemerweiterung zwangsweise entladen möchten, gibt es einen Menüpunkt namens „Systemerweiterung entladen“, der sie entlädt. Diese Aktion kann zu seltsamen Nebeneffekten führen; führen Sie sie nur durch, wenn Sie wissen, was Sie tun.
Wenn Sie einen Prozess zur Blacklist hinzugefügt haben und er immer noch ausgeführt werden darf, denken Sie daran, den tatsächlichen vollständigen Pfad zu überprüfen. Einfach /Applications/Foo.app zu verwenden, reicht nicht aus, um die Ausführung zu verhindern. Außerdem werden viele macOS-Anwendungen über xpcproxy gestartet.