
Crescendo é um visualizador de eventos em tempo real baseado em Swift para macOS. Ele utiliza o Apple's Endpoint Security Framework.


A Apple introduziu alguns novos mecanismos de segurança que precisamos ativar para que o Crescendo funcione.
Certifique-se de que moveu a aplicação para o diretório /Applications, caso contrário a extensão do sistema não conseguirá carregar.
Na primeira execução, será solicitado que aprove a extensão do sistema, após clicar no botão "Start".
NOTA: Notei que há um problema onde as Preferências do Sistema não mostram um botão de permitir. Presumo que seja algum problema interno que a Apple precisa resolver. Clicar de volta nas Preferências do Sistema e navegar novamente parece resolver o problema.

Você precisará ativar o Acesso Total ao Disco para a extensão do sistema.

O Crescendo é compatível apenas com >=10.15.X e pelo menos Xcode 10.
Este projeto consiste em três componentes principais:
É altamente recomendado testar este código numa máquina virtual com SIP desativado, uma vez que este projeto requer a permissão de segurança de endpoint, TCC e assinatura adequada quando o SIP está ativado.
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequestsystemextensionsctl developer on
Se pretender assinar a sua própria aplicação, é altamente recomendado ler a documentação da Apple sobre os requisitos de Extensão do Sistema e Notarização.
Assinar e atribuir permissões não é um exercício trivial.
Incluí o meu ficheiro .xproj neste lançamento para ajudar os interessados. No futuro, provavelmente passarei a usar o novo ficheiro xcconfig, pois parece uma abordagem muito mais sensata do que comprometer ficheiros xproj. Se quiser simplesmente compilar a aplicação de linha de comandos de exemplo, pode fazê-lo com o Xcode.
Para compilar esta aplicação e executá-la num sistema macOS de produção, precisará da permissão de segurança de endpoint e de um certificado de programador da Apple.
O framework Crescendo pode ser facilmente integrado em qualquer aplicação Swift. Poderá migrar para o CocoaPods no futuro, mas neste momento não estou familiarizado com ele.
Sinta-se à vontade para abrir um problema se desejar ver uma funcionalidade adicionada ou encontrar um problema. Se pretender contribuir com um pull request, por favor certifique-se de executar o swiftlint sobre o seu código antes de contribuir.
Lançarei versões para a aplicação compilada + assinada e incluí-las-ei no separador Releases conforme necessário.
Se estiver a executar num Mac de produção, NÃO deve desativar o SIP ou o AMFI. Essas instruções são para programadores que desejam fazer alterações no código.
Ativou a extensão do sistema clicando no botão "Permitir" em Preferências do Sistema -> Segurança e Privacidade? Se não, não verá nenhum evento.
Ativou o acesso total ao disco em Preferências do Sistema -> Segurança e Privacidade -> Separador Privacidade? Se não, não verá nenhum evento.
Se encontrar algum problema, abra a aplicação Console e procure por crescendo ou <your_bundle_id>/com.suprhackersteve como filtro; isso deve ajudá-lo a diagnosticar potenciais problemas. Também é uma boa ideia verificar no CrashReporter se a extensão crashou ou saiu com fatalError.
Se quiser forçar a remoção da extensão do sistema, existe um item de menu chamado "Descarregar Extensão do Sistema" que a descarregará. Esta ação pode causar efeitos secundários estranhos; só a execute se souber o que está a fazer.
Se adicionou um processo à lista negra e ele ainda é permitido executar, lembre-se de verificar o caminho real completo. Simplesmente usar /Applications/Foo.app não será suficiente para impedir a execução. Além disso, muitas aplicações macOS são iniciadas através do xpcproxy.