
Crescendo è un visualizzatore di eventi in tempo reale basato su swift per macOS. Utilizza Apple's Endpoint Security Framework.


Apple ha introdotto alcuni nuovi meccanismi di sicurezza che dobbiamo abilitare per far funzionare Crescendo.
Assicurati di aver spostato l'app nella cartella /Applications, altrimenti l'estensione di sistema non si caricherà.
Al primo avvio ti verrà chiesto di approvare l'estensione di sistema, dopo aver cliccato sul pulsante "Start".
NOTA: Ho notato che c'è un problema per cui le Preferenze di Sistema non mostrano un pulsante di consenso. Presumo sia un problema interno che Apple deve risolvere. Tornare indietro alle Preferenze di Sistema e navigare di nuovo in avanti sembra risolvere il problema.

Dovrai abilitare l'Accesso Completo al Disco per l'estensione di sistema.

Crescendo è compatibile solo con >=10.15.X e almeno Xcode 10.
Questo progetto è composto da tre componenti principali:
È altamente consigliato testare questo codice in una macchina virtuale con SIP disabilitato, poiché questo progetto richiede l'entitlement endpoint-security, TCC e una firma corretta quando SIP è abilitato.
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequestsystemextensionsctl developer on
Se desideri firmare la tua applicazione, è vivamente consigliato leggere la documentazione Apple sui requisiti delle Estensioni di Sistema e sulla Notarizzazione.
La firma e l'entitlement sono un'attività non banale.
Ho incluso il mio file .xproj in questa release per far iniziare le persone. In futuro probabilmente passerò all'uso del nuovo file xcconfig, poiché sembra un approccio molto più sensato rispetto al commit di file xproj. Se desideri semplicemente compilare l'applicazione CLI di esempio, puoi farlo con Xcode.
Per compilare questa applicazione ed eseguirla su un sistema macOS di produzione, avrai bisogno dell'entitlement endpoint-security e di un certificato sviluppatore di Apple.
Il framework Crescendo può essere facilmente raggruppato con qualsiasi applicazione Swift. Potrei passare a CocoaPods in futuro, ma al momento non li conosco.
Sentiti libero di aprire un issue se desideri vedere una funzionalità aggiunta o se incontri un problema. Se desideri contribuire con una pull request, assicurati di eseguire swiftlint sul tuo codice prima di contribuire.
Pubblicherò release per l'app compilata e firmata e le includerò nella scheda Releases secondo necessità.
Se stai usando un Mac di produzione, NON dovresti disabilitare SIP o AMFI. Quelle istruzioni sono per sviluppatori che desiderano apportare modifiche al codice.
Hai abilitato l'estensione di sistema cliccando sul pulsante "Consenti" in Preferenze di Sistema -> Sicurezza e Privacy? Se no, non vedrai alcun evento.
Hai abilitato l'accesso completo al disco in Preferenze di Sistema -> Sicurezza e Privacy -> Scheda Privacy? Se no, non vedrai alcun evento.
Se incontri problemi, apri Console.app e cerca crescendo o <your_bundle_id>/com.suprhackersteve come filtro, questo dovrebbe aiutarti nella risoluzione di eventuali problemi. È anche una buona idea controllare in CrashReporter e vedere se l'estensione è andata in crash o è uscita con fatalError.
Se desideri scaricare forzatamente l'estensione di sistema, c'è una voce di menu chiamata "Unload System Extension" che la scaricherà. Questa azione può portare a effetti collaterali insoliti, eseguila solo se sai cosa stai facendo.
Se hai aggiunto un processo alla lista nera e viene ancora eseguito, ricordati di controllare il percorso completo reale. Usare semplicemente /Applications/Foo.app non sarà sufficiente per impedirne l'esecuzione. Inoltre, molte applicazioni macOS vengono avviate tramite xpcproxy.