
Crescendo는 Swift 기반의 실시간 이벤트 뷰어로, macOS용입니다. Apple의 Endpoint Security Framework를 사용합니다.


Apple은 Crescendo를 실행하기 위해 활성화해야 하는 몇 가지 새로운 보안 메커니즘을 도입했습니다.
앱을 /Applications 디렉토리로 이동했는지 확인하세요. 그렇지 않으면 시스템 확장 프로그램이 로드되지 않습니다.
처음 실행 시 "시작" 버튼을 클릭한 후 시스템 확장 프로그램 승인을 요청하는 메시지가 표시됩니다.
참고: 시스템 환경설정에서 허용 버튼이 표시되지 않는 문제가 있음을 확인했습니다. 이는 Apple이 해결해야 하는 내부적인 문제라고 생각합니다. 시스템 환경설정을 다시 클릭하고 다시 탐색하면 문제가 해결되는 것으로 보입니다.

시스템 확장 프로그램에 대해 전체 디스크 접근 권한을 활성화해야 합니다.

Crescendo는 >=10.15.X 및 최소 Xcode 10과만 호환됩니다.
이 프로젝트는 세 가지 주요 구성 요소로 이루어져 있습니다:
이 프로젝트는 SIP가 활성화된 상태에서 endpoint-security 권한, TCC 및 적절한 서명이 필요하므로, SIP를 비활성화한 가상 머신에서 이 코드를 테스트하는 것을 강력히 권장합니다.
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequest를 호출할 때마다 확장 프로그램이 다시 로드되도록 합니다.systemextensionsctl developer on
자체 애플리케이션에 서명하려면 Apple의 시스템 확장 프로그램 요구 사항 및 공증에 관한 문서를 읽는 것을 적극 권장합니다.
서명 및 권한 부여는 간단한 작업이 아닙니다.
시작을 돕기 위해 이 릴리스에 .xproj 파일을 포함시켰습니다. 앞으로는 xproj 파일을 커밋하는 대신 더 합리적인 접근 방식인 새 xcconfig 파일을 사용할 것으로 예상됩니다. 간단히 예제 CLI 애플리케이션을 빌드하려면 Xcode를 사용하여 빌드할 수 있습니다.
이 애플리케이션을 빌드하여 프로덕션 macOS 시스템에서 실행하려면 endpoint-security 권한과 Apple의 개발자 인증서가 필요합니다.
Crescendo 프레임워크는 모든 Swift 애플리케이션에 쉽게 번들로 포함될 수 있습니다. 향후 CocoaPods로 전환할 수도 있지만, 현재는 잘 알지 못합니다.
기능 추가를 원하거나 문제가 발생하면 이슈를 제기해 주세요. 풀 리퀘스트를 기여하려면 코드에 swiftlint를 실행한 후 기여해 주시기 바랍니다.
컴파일 및 서명된 앱에 대한 릴리스를 필요에 따라 릴리스 탭에 포함하여 제공하겠습니다.
프로덕션 Mac에서 실행 중이라면 SIP나 AMFI를 비활성화하면 안 됩니다. 해당 지침은 코드를 변경하려는 개발자를 위한 것입니다.
시스템 환경설정 -> 보안 및 개인 정보 보호에서 "허용" 버튼을 클릭하여 시스템 확장 프로그램을 활성화했습니까? 그렇지 않으면 이벤트가 표시되지 않습니다.
시스템 환경설정 -> 보안 및 개인 정보 보호 -> 개인 정보 보호 탭에서 전체 디스크 접근 권한을 활성화했습니까? 그렇지 않으면 이벤트가 표시되지 않습니다.
문제가 발생하면 Console.app을 열고 crescendo 또는 <your_bundle_id>/com.suprhackersteve를 필터로 검색하면 문제 해결에 도움이 됩니다. 또한 CrashReporter에서 확장 프로그램이 충돌했거나 fatalError로 종료되었는지 확인하는 것도 좋습니다.
시스템 확장 프로그램을 강제로 언로드하려면 "시스템 확장 프로그램 언로드" 메뉴 항목이 있습니다. 이 작업은 예상치 못한 부작용을 초래할 수 있으므로, 작업 내용을 잘 알고 있는 경우에만 수행하세요.
블랙리스트에 프로세스를 추가했지만 여전히 실행이 허용된다면 _실제 전체 경로_를 확인하는 것을 잊지 마세요. 단순히 /Applications/Foo.app을 사용하는 것만으로는 실행을 막기에 충분하지 않습니다. 또한 많은 macOS 애플리케이션은 xpcproxy를 통해 실행됩니다.