- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
**यहां से सामग्री कॉपी की गई है** [**https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#app-extensions**](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#app-extensions)
ऐप एक्सटेंशन्स ऐप्स को यह सुविधा और सामग्री प्रदान करने की अनुमति देते हैं जब वे अन्य ऐप्स या सिस्टम के साथ इंटरैक्ट कर रहे होते हैं। कुछ महत्वपूर्ण एक्सटेंशन्स निम्नलिखित हैं:
उदाहरण के लिए, उपयोगकर्ता _होस्ट ऐप_ में पाठ का चयन करता है, "शेयर" बटन पर क्लिक करता है और सूची से "ऐप" या कार्रवाई का चयन करता है। इससे _ऐप एक्सटेंशन_ को _संबंधित ऐप_ का एक्सटेंशन ट्रिगर होता है। ऐप एक्सटेंशन होस्ट ऐप के संदर्भ में अपना दृश्य प्रदर्शित करता है और इसका उपयोग करके किसी विशेष कार्य (उदाहरण के लिए, इसे सोशल नेटवर्क पर पोस्ट करें) करने के लिए होस्ट ऐप द्वारा प्रदान की गई आइटम, इस मामले में चयनित पाठ, का उपयोग करता है। इसका अच्छी तरह से सारांशित करने वाली [Apple App Extension Programming Guide](https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionOverview.html#//apple\_ref/doc/uid/TP40014214-CH2-SW13) से यह चित्र देखें:
* एक **ऐप एक्सटेंशन कभी भी अपने संबंधित ऐप के साथ सीधे संवाद नहीं करता** है (सामान्यतः, यह चल रहा नहीं होता है जब एक्सटेंशन चल रहा होता है)।
* एक **ऐप एक्सटेंशन** और **होस्ट ऐप****इंटर-प्रोसेस** संवाद के माध्यम से **संवाद करते** हैं।
* एक **ऐप एक्सटेंशन के संबंधित ऐप** और **होस्ट ऐप कभी भी संवाद नहीं करते** हैं।
* **टुडे विजेट** (और कोई अन्य ऐप एक्सटेंशन प्रकार नहीं) सिस्टम से अपने संबंधित ऐप को खोलने के लिए `NSExtensionContext` कक्षा के `openURL:completionHandler:` विधि को कॉल करके प्रणाली से पूछ सकता है।
* किसी भी **ऐप एक्सटेंशन** और उसके **संबंधित ऐप** को एक निजी निर्धारित साझा कंटेनर में साझा डेटा तक पहुंच मिल सकती है।
* ऐप एक्सटेंशन **कुछ एपीआई तक पहुंच नहीं पा सकते**, उदाहरण के लिए, HealthKit।
आप SSH के माध्यम से भी पहुंच सकते हैं, ऐप बंडल को खोजें और सभी अंदर के प्लगइन की सूची बनाएं (ये डिफ़ॉल्ट रूप से वहां रखे जाते हैं) या इसे objection के साथ करें:
यह महत्वपूर्ण है जब डेटा को होस्ट ऐप्स के साथ साझा किया जाता है (उदाहरण के लिए, शेयर या एक्शन एक्सटेंशन के माध्यम से)। जब उपयोगकर्ता होस्ट ऐप में किसी डेटा प्रकार का चयन करता है और यह यहां परिभाषित डेटा प्रकारों के साथ मेल खाता है, तो होस्ट ऐप एक्सटेंशन प्रदान करेगा। इसे यहां परिभाषित दस्तावेज़ प्रकारों के साथ `UIActivity` के माध्यम से डेटा साझा करने से अलग करने के बारे में ध्यान देने योग्य है, जहां हमें दस्तावेज़ प्रकारों को परिभाषित करना था, UTI का उपयोग करके। उसके लिए ऐप को एक्सटेंशन की आवश्यकता नहीं होती है। केवल `UIActivity` का उपयोग करके डेटा साझा करना संभव है।
ऐप एक्सटेंशन के `Info.plist` फ़ाइल की जांच करें और `NSExtensionActivationRule` के लिए खोजें। यह कुंजी समर्थित डेटा को स्पष्ट करती है साथ ही उच्चतम संख्या में समर्थित आइटमों को भी। उदाहरण के लिए:
केवल यहां मौजूद डेटा प्रकारों को समर्थित किया जाएगा और `MaxCount` के रूप में `0` नहीं होगा। हालांकि, एक ऐसे प्रेडिकेट स्ट्रिंग का उपयोग करके अधिक जटिल फ़िल्टरिंग संभव है जो UTI को मूल्यांकन करेगा। इसके बारे में अधिक विस्तृत जानकारी के लिए कृपया [Apple App Extension Programming Guide](https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple\_ref/doc/uid/TP40014214-CH21-SW8) का संदर्भ लें।
ध्यान दें कि ऐप एक्सटेंशन और उनके संग्रहीत ऐप के पास सीधा पहुंच नहीं होती है। हालांकि, डेटा साझा की जा सकती है। इसे ["ऐप समूह"](https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple\_ref/doc/uid/TP40011195-CH4-SW19) और [`NSUserDefaults`](https://developer.apple.com/documentation/foundation/nsuserdefaults) एपीआई के माध्यम से किया जा सकता है। [Apple App Extension Programming Guide](https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple\_ref/doc/uid/TP40014214-CH21-SW11) से इस चित्र का संदर्भ देखें:
जैसा कि गाइड में भी उल्लेख किया गया है, ऐप को साझा कंटेनर सेटअप करना होगा यदि ऐप एक्सटेंशन `NSURLSession` कक्षा का उपयोग करके बैकग्राउंड अपलोड या डाउनलोड करने के लिए करता है, ताकि एक्सटेंशन और उसके संग्रहीत ऐप दोनों संचालित डेटा तक पहुंच सकें।
हालांकि, वर्तमान में यह केवल "कस्टम कीबोर्ड" ऐप एक्सटेंशन के लिए ही संभव है (और इसे जांचना चाहिए जब ऐप्स को टेस्ट कर रहे हों जो कीबोर्ड के माध्यम से संवेदनशील डेटा का हैंडल करते हैं, जैसे बैंकिंग ऐप्स आदि)।
Telegram के पिछले उदाहरण का अनुसरण करते हुए हम अब टेक्स्ट फ़ाइल पर "शेयर" बटन का उपयोग करेंगे (जो चैट से प्राप्त किया गया था) और इसके साथ नोट्स ऐप में एक नोट बनाएंगे:
* यह XPC के माध्यम से अंदर से हुआ, विशेष रूप से इसे `libxpc.dylib` फ्रेमवर्क का उपयोग करके `NSXPCConnection` द्वारा कार्यान्वित किया गया है।
*`NSItemProvider` में शामिल यूटीआईआईएस `public.plain-text` और `public.file-url` हैं, जिनमें से दूसरा [`टेलीग्राम के "शेयर एक्सटेंशन" के Info.plist`](https://github.com/TelegramMessenger/Telegram-iOS/blob/master/Telegram/Share/Info.plist) से `NSExtensionActivationRule` में शामिल है।
यदि आप XPC के तहत क्या हो रहा है के बारे में और अधिक जानना चाहते हैं, तो हम "libxpc.dylib" से आंतरिक कॉल्स पर नज़र डालने की सलाह देते हैं। उदाहरण के लिए, आप [`frida-trace`](https://www.frida.re/docs/frida-trace/) का उपयोग कर सकते हैं और फिर स्वचालित रूप से उत्पन्न स्टब्स को विस्तारित करके आपको अधिक रुचिकर लगने वाले विधियों में खुद को खोजने के लिए गहराई में जा सकते हैं।
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो**? या क्या आप **PEASS के नवीनतम संस्करण देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**