mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
# iOS UIActivity Sharing
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
# UIActivity Sharing Simplified
|
|
|
|
Kuanzia iOS 6, programu za upande wa tatu zimewezeshwa **kushiriki data** kama maandiko, URLs, au picha kwa kutumia mitambo kama AirDrop, kama ilivyoelezwa katika [mwongozo wa Mawasiliano Kati ya Programu za Apple](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Kipengele hiki kinaonekana kupitia _karatasi ya shughuli ya kushiriki_ inayojitokeza unaposhughulika na kitufe cha "Share".
|
|
|
|
Orodha kamili ya chaguzi zote za kushiriki zilizojengwa ndani inapatikana katika [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Wataalamu wa maendeleo wanaweza kuchagua kutengwa kwa chaguzi maalum za kushiriki ikiwa wanaona hazifai kwa programu yao.
|
|
|
|
## **Jinsi ya Kushiriki Data**
|
|
|
|
Umakini unapaswa kuelekezwa kwa:
|
|
|
|
- Aina ya data inayoshirikiwa.
|
|
- Kuongeza shughuli za kawaida.
|
|
- Kutengwa kwa aina fulani za shughuli.
|
|
|
|
Kushiriki kunarahisishwa kupitia uundaji wa `UIActivityViewController`, ambapo vitu vinavyokusudiwa kushirikiwa vinapitishwa. Hii inafanywa kwa kuita:
|
|
```bash
|
|
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
|
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
|
```
|
|
Wak developers wanapaswa kuchunguza `UIActivityViewController` kwa shughuli na shughuli za kawaida ambazo imeanzishwa nazo, pamoja na aina zozote za `excludedActivityTypes` zilizotajwa.
|
|
|
|
## **Jinsi ya Kupokea Data**
|
|
|
|
Vipengele vifuatavyo ni muhimu unapopokea data:
|
|
|
|
- Tamko la **aina za hati za kawaida**.
|
|
- Mwelekeo wa **aina za hati ambazo programu inaweza kufungua**.
|
|
- Uthibitishaji wa **uaminifu wa data iliyopokelewa**.
|
|
|
|
Bila ufikiaji wa msimbo wa chanzo, mtu anaweza bado kuchunguza `Info.plist` kwa funguo kama `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, na `CFBundleDocumentTypes` ili kuelewa aina za hati ambazo programu inaweza kushughulikia na kutangaza.
|
|
|
|
Mwongozo mfupi juu ya funguo hizi upatikana kwenye [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), ukisisitiza umuhimu wa kufafanua na kuingiza UTIs kwa kutambuliwa kwa mfumo mzima na kuunganisha aina za hati na programu yako kwa ushirikiano katika mazungumzo ya "Fungua na".
|
|
|
|
## Mbinu ya Kujaribu ya Kijadi
|
|
|
|
Ili kujaribu **kutuma shughuli**, mtu anaweza:
|
|
|
|
- Kuunganisha kwenye njia `init(activityItems:applicationActivities:)` ili kukamata vitu na shughuli zinazoshirikiwa.
|
|
- Kutambua shughuli zilizotengwa kwa kukamata mali ya `excludedActivityTypes`.
|
|
|
|
Kwa **kupokea vitu**, inahusisha:
|
|
|
|
- Kushiriki faili na programu kutoka chanzo kingine (mfano, AirDrop, barua pepe) inayochochea mazungumzo ya "Fungua na...".
|
|
- Kuunganisha `application:openURL:options:` kati ya mbinu nyingine zilizotambuliwa wakati wa uchambuzi wa statiki ili kuona majibu ya programu.
|
|
- Kutumia faili zisizo sahihi au mbinu za fuzzing ili kutathmini uimara wa programu.
|
|
|
|
## Marejeo
|
|
|
|
- [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)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|