# iOS UIActivity Sharing

<details>

<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>

HackTricks का समर्थन करने के अन्य तरीके:

* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।

</details>

# UIActivity Sharing Simplified

iOS 6 के बाद, थर्ड-पार्टी एप्लिकेशनों को **डेटा साझा करने** की अनुमति है, जैसे AirDrop का उपयोग करके टेक्स्ट, URLs, या छवियों को साझा करने के लिए, जैसा कि Apple के [Inter-App Communication guide](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) में व्याख्या की गई है। यह सुविधा एक सिस्टम-व्यापी _शेयर एक्टिविटी शीट_ के माध्यम से प्रकट होती है जो "शेयर" बटन के साथ इंटरैक्ट करने पर सामने आती है।

सभी इनबिल्ट शेयरिंग विकल्पों की व्यापक गणना [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype) पर उपलब्ध है। डेवलपर्स अपने एप्लिकेशन के लिए अनुपयुक्त मानते हैं तो वे कुछ शेयरिंग विकल्पों को छोड़ सकते हैं।

## **डेटा साझा कैसे करें**

ध्यान केंद्रित करना चाहिए:

- साझा किए जा रहे डेटा का प्रकृति।
- कस्टम एक्टिविटी का समावेश।
- कुछ एक्टिविटी प्रकारों को छोड़ना।

साझा करना `UIActivityViewController` का निर्माण करके सुविधाजनक है, जिसमें साझा करने के लिए इच्छित आइटम पारित किए जाते हैं। इसे बुलाकर प्राप्त किया जाता है:
```bash
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
```
Developers को `UIActivityViewController` को जांचना चाहिए जिसमें यह initialized होता है activities और custom activities के साथ, साथ ही किसी निर्दिष्ट `excludedActivityTypes` को।

## **डेटा प्राप्त करने का तरीका**

निम्नलिखित पहलुओं में महत्वपूर्ण हैं जब डेटा प्राप्त किया जाता है:

- **कस्टम दस्तावेज़ प्रकार** की घोषणा।
- **दस्तावेज़ प्रकारों की घोषणा** जिन्हें ऐप खोल सकता है।
- प्राप्त किए गए डेटा की **मान्यता की पुष्टि**।

स्रोत कोड तक पहुंच के बिना, कोई भी `Info.plist` की जांच कर सकता है जैसे `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, और `CFBundleDocumentTypes` जैसे keys के लिए ताकि ऐप के दस्तावेज़ के प्रकारों को समझा जा सके और घोषित किया जा सके।

इन keys पर एक संक्षिप्त मार्गदर्शिका [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i) पर उपलब्ध है, जो सिस्टम-व्यापी मान्यता के लिए UTIs की परिभाषा और दस्तावेज़ प्रकारों को आपके ऐप के साथ जोड़ने की महत्वता को हाइलाइट करती है "Open With" संवाद में एकीकरण के लिए।

## गतिशील परीक्षण दृष्टिकोण

**भेजने की गतिविधियों** का परीक्षण करने के लिए, एक व्यक्ति:

- `init(activityItems:applicationActivities:)` में हुक कर सकता है ताकि साझा किए जा रहे आइटम और गतिविधियों को कैप्चर किया जा सके।
- `excludedActivityTypes` property को अंतर्दृष्टि करके छोड़ी गई गतिविधियों की पहचान कर सकता है।

**आइटम प्राप्त करने** के लिए, इसमें शामिल है:

- एक फ़ाइल को एप्लिकेशन के साथ साझा करना अन्य स्रोत से (जैसे, AirDrop, ईमेल) जो "Open with..." संवाद को प्रोत्साहित करता है।
- `application:openURL:options:` में हुक करना और स्थिर विश्लेषण के दौरान पहचाने गए अन्य विधियों को देखने के लिए ऐप की प्रतिक्रिया को देखना।
- ऐप की मजबूती का मूल्यांकन करने के लिए अविकसित फ़ाइल या fuzzing तकनीकों का उपयोग करना।

## संदर्भ
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)