Xamarin Apps

Reading time: 5 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Taarifa za Msingi

Xamarin ni jukwaa la chanzo wazi lililoundwa kwa ajili ya waendelezaji kuunda programu za iOS, Android, na Windows kwa kutumia mifumo ya .NET na C#. Jukwaa hili linatoa ufikiaji wa zana nyingi na nyongeza za kuunda programu za kisasa kwa ufanisi.

Muktadha wa Xamarin

  • Kwa Android, Xamarin inajumuisha na Android na Java namespaces kupitia .NET bindings, ikifanya kazi ndani ya mazingira ya utekelezaji ya Mono pamoja na Android Runtime (ART). Managed Callable Wrappers (MCW) na Android Callable Wrappers (ACW) husaidia mawasiliano kati ya Mono na ART, zote zikiwa zimejengwa kwenye kernel ya Linux.
  • Kwa iOS, programu zinafanya kazi chini ya mazingira ya utekelezaji ya Mono, zikitumika kwa uundaji wa Ahead of Time (AOT) kamili kubadilisha C# .NET code kuwa lugha ya mkusanyiko wa ARM. Mchakato huu unafanya kazi pamoja na Objective-C Runtime kwenye kernel inayofanana na UNIX.

.NET Runtime na Mono Framework

.NET framework inajumuisha makusanyo, madarasa, na namespaces kwa ajili ya maendeleo ya programu, huku .NET Runtime ikisimamia utekelezaji wa msimbo. Inatoa uhuru wa jukwaa na ulinganifu wa nyuma. Mono Framework ni toleo la chanzo wazi la .NET framework, lililoanzishwa mwaka 2005 ili kupanua .NET kwa Linux, sasa likisaidiwa na Microsoft na kuongozwa na Xamarin.

Uhandisi wa Nyuma wa Programu za Xamarin

Ukombozi wa Makusanyo ya Xamarin

Ukombozi hubadilisha msimbo ulioandikwa kuwa msimbo wa chanzo. Katika Windows, dirisha la Modules katika Visual Studio linaweza kutambua moduli za ukombozi, kuruhusu ufikiaji wa moja kwa moja wa msimbo wa wahusika wengine na kutoa msimbo wa chanzo kwa ajili ya uchambuzi.

JIT vs AOT Ukompaji

  • Android inasaidia Just-In-Time (JIT) na Ahead-Of-Time (AOT) ukompaji, ikiwa na hali ya Hybrid AOT kwa kasi bora ya utekelezaji. AOT kamili ni ya leseni za Enterprise pekee.
  • iOS inatumia tu AOT ukompaji kutokana na vizuizi vya Apple juu ya utekelezaji wa msimbo wa dinamik.

Kutolewa kwa faili za dll kutoka APK/IPA

Ili kufikia makusanyo katika APK/IPA, fungua faili na uchunguze saraka ya makusanyo. Kwa Android, zana kama XamAsmUnZ na xamarin-decompress zinaweza kufungua faili za dll.

bash
python3 xamarin-decompress.py -o /path/to/decompressed/apk

Katika hali ambapo baada ya decompiling APK inawezekana kuona folda ya unknown/assemblies/ yenye faili za .dll ndani yake, hivyo inawezekana kutumia dnSpy moja kwa moja juu ya .dlls ili kuzichambua.
Hata hivyo, wakati mwingine, inapatikana faili za assemblies.blob na assemblies.manifest ndani ya folda ya unknown/assemblies/. Zana pyxamstore inaweza kutumika kwa kufungua faili ya assemblies.blob katika programu za Xamarin, ikiruhusu ufikiaji wa .NET assemblies kwa uchambuzi zaidi:

bash
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/

Faili za iOS dll zinapatikana kwa urahisi kwa ajili ya decompilation, zikifunua sehemu kubwa za msimbo wa programu, ambayo mara nyingi inashiriki msingi wa kawaida kati ya majukwaa tofauti.

Uchambuzi wa Kijamii

Mara tu .dlls zinapopatikana, inawezekana kuchambua msimbo wa .Net kwa njia ya statiki kwa kutumia zana kama dnSpy au ILSpy ambazo zitakuruhusu kubadilisha msimbo wa programu. Hii inaweza kuwa ya manufaa sana kubadilisha programu ili kupita ulinzi kwa mfano.
Kumbuka kwamba baada ya kubadilisha programu, utahitaji kuipakia tena na kuisaini tena.

Uchambuzi wa Kijamii

Uchambuzi wa kijamii unahusisha kuangalia SSL pinning na kutumia zana kama Fridax kwa mabadiliko ya wakati wa kukimbia ya binary ya .NET katika programu za Xamarin. Mifano ya Frida inapatikana ili kupita ugunduzi wa root au SSL pinning, ikiongeza uwezo wa uchambuzi.

Mifano mingine ya kuvutia ya Frida:

Kusaini Tena

Zana Uber APK Signer inarahisisha kusaini APK nyingi kwa kutumia funguo sawa, na inaweza kutumika kusaini tena programu baada ya mabadiliko kufanywa kwake.

Taarifa Zaidi

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks