
Crescendo एक Swift-आधारित, macOS के लिए रीयल टाइम इवेंट व्यूअर है। यह Apple के Endpoint Security Framework का उपयोग करता है।


Apple ने कुछ नए सुरक्षा तंत्र पेश किए हैं जिन्हें हमें Crescendo चलाने के लिए सक्षम करना होगा।
सुनिश्चित करें कि आपने ऐप को अपने /Applications निर्देशिका में स्थानांतरित कर दिया है, अन्यथा सिस्टम एक्सटेंशन लोड होने में विफल हो जाएगा।
पहली बार चलाने पर आपको सिस्टम एक्सटेंशन को स्वीकृत करने के लिए कहा जाएगा, "Start" बटन पर क्लिक करने के बाद।
नोट: मैंने देखा है कि एक समस्या है जहाँ System Preferences में अनुमति बटन नहीं दिखता। मुझे लगता है कि यह Apple की कोई आंतरिक समस्या है जिसे हल करने की आवश्यकता है। System Preferences पर वापस क्लिक करना और फिर से आगे बढ़ना समस्या को ठीक करता प्रतीत होता है।

आपको सिस्टम एक्सटेंशन के लिए Full Disk Access सक्षम करना होगा।

Crescendo केवल >=10.15.X और कम से कम Xcode 10 के साथ संगत है।
इस परियोजना में तीन मुख्य घटक शामिल हैं:
इस कोड को SIP अक्षम के साथ एक वर्चुअल मशीन में परीक्षण करना अत्यधिक अनुशंसित है, क्योंकि इस परियोजना को SIP सक्षम होने पर endpoint-security एंटाइटलमेंट, TCC और उचित हस्ताक्षर की आवश्यकता होती है।
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequest कॉल करने पर हमारे एक्सटेंशन पुनः लोड होंsystemextensionsctl developer on
यदि आप अपने स्वयं के एप्लिकेशन पर हस्ताक्षर करना चाहते हैं, तो Apple के सिस्टम एक्सटेंशन आवश्यकताओं और नोटराइज़ेशन पर दस्तावेज़ पढ़ने की अत्यधिक अनुशंसा की जाती है।
हस्ताक्षर और एंटाइटलमेंट एक साधारण व्यायाम नहीं है।
मैंने लोगों को शुरू करने के लिए इस रिलीज़ में अपनी .xproj फ़ाइल शामिल की है। भविष्य में मैं संभवतः नए xcconfig फ़ाइल का उपयोग करने की ओर बढ़ूँगा क्योंकि यह xproj फ़ाइलों को कमिट करने की तुलना में अधिक समझदारीपूर्ण तरीका प्रतीत होता है। यदि आप केवल उदाहरण CLI एप्लिकेशन बनाना चाहते हैं, तो आप Xcode के माध्यम से ऐसा कर सकते हैं।
इस एप्लिकेशन को बनाने और इसे उत्पादन macOS सिस्टम पर चलाने के लिए, आपको Apple से एंडपॉइंट-सुरक्षा एंटाइटलमेंट और एक डेवलपर प्रमाणपत्र की आवश्यकता होगी।
Crescendo ढाँचे को किसी भी Swift एप्लिकेशन के साथ आसानी से बंडल किया जा सकता है। मैं भविष्य में CocoaPods पर जा सकता हूँ, लेकिन मैं अभी उनसे अपरिचित हूँ।
कृपया बेझिझक एक समस्या उठाएँ यदि आप कोई सुविधा जोड़ते हुए देखना चाहते हैं या किसी समस्या का सामना करते हैं। यदि आप एक पुल अनुरोध योगदान करना चाहते हैं, तो कृपया सुनिश्चित करें कि आप योगदान देने से पहले अपने कोड पर swiftlint चलाएँ।
मैं संकलित + हस्ताक्षरित ऐप के लिए रिलीज़ काटूँगा और आवश्यकतानुसार उन्हें Releases टैब में शामिल करूँगा।
यदि आप उत्पादन Mac पर चला रहे हैं, तो आपको SIP या AMFI अक्षम नहीं करना चाहिए। वे निर्देश कोड में बदलाव करने वाले डेवलपर्स के लिए हैं।
क्या आपने System Preferences -> Security & Privacy में "Allow" बटन पर क्लिक करके सिस्टम एक्सटेंशन सक्षम किया? यदि नहीं, तो आप कोई ईवेंट नहीं देखेंगे।
क्या आपने System Preferences -> Security & Privacy -> Privacy Tab में Full Disk Access सक्षम किया? यदि नहीं, तो आप कोई ईवेंट नहीं देखेंगे।
यदि आप किसी समस्या का सामना करते हैं, तो Console.app खोलें और फ़िल्टर के रूप में crescendo या <your_bundle_id>/com.suprhackersteve खोजें, इससे आपको किसी भी संभावित समस्या के समाधान में सहायता मिलेगी। CrashReporter में जाँच करना भी एक अच्छा विचार है कि क्या एक्सटेंशन क्रैश हुआ है या fatalError के साथ बाहर निकला है।
यदि आप सिस्टम एक्सटेंशन को जबरदस्ती अनलोड करना चाहते हैं, तो "Unload System Extension" नामक एक मेनू आइटम है जो इसे अनलोड करेगा। यह कार्रवाई विषम दुष्प्रभावों का कारण बन सकती है, इसे केवल तभी करें जब आप जानते हों कि आप क्या कर रहे हैं।
यदि आपने ब्लैकलिस्ट में एक प्रक्रिया जोड़ी है और वह अभी भी निष्पादित होने की अनुमति है, तो वास्तविक पूर्ण पथ की जाँच करना याद रखें। केवल /Applications/Foo.app का उपयोग करना निष्पादन को रोकने के लिए पर्याप्त नहीं होगा। साथ ही, कई macOS एप्लिकेशन xpcproxy के माध्यम से लॉन्च होते हैं।