Xamarin Apps
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Xamarin ni jukwaa la chanzo wazi lililoundwa kwa ajili ya waendelezaji kuunda programu za iOS, Android, na Windows kwa kutumia .NET na C# frameworks. Jukwaa hili linatoa ufikiaji wa zana nyingi na nyongeza za kuunda programu za kisasa kwa ufanisi.
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) hurahisisha mawasiliano kati ya Mono na ART, zote zikiwa zimejengwa kwenye kernel ya Linux.
Kwa iOS, programu zinafanya kazi chini ya Mono runtime, zikitumika kwa uundaji wa AHEAD ya WAKATI (AOT) kamili kubadilisha C# .NET code kuwa lugha ya mkusanyiko ya ARM. Mchakato huu unafanya kazi pamoja na Objective-C Runtime kwenye kernel inayofanana na UNIX.
.NET framework inajumuisha assemblies, classes, 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.
Decompilation inabadilisha msimbo ulioandikwa nyuma kuwa msimbo wa chanzo. Katika Windows, dirisha la Modules katika Visual Studio linaweza kutambua moduli za decompilation, kuruhusu ufikiaji wa moja kwa moja wa msimbo wa wahusika wengine na kutoa msimbo wa chanzo kwa ajili ya uchambuzi.
Android inasaidia Just-In-Time (JIT) na Ahead-Of-Time (AOT) compilation, ikiwa na hali ya Hybrid AOT kwa ajili ya kasi bora ya utekelezaji. AOT kamili ni ya leseni za Enterprise pekee.
iOS inatumia tu AOT compilation kutokana na vizuizi vya Apple juu ya utekelezaji wa msimbo wa dynamic.
Ili kufikia assemblies katika APK/IPA, fungua faili na chunguza directory ya assemblies. Kwa Android, zana kama XamAsmUnZ na xamarin-decompress zinaweza kufungua faili za dll.
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:
iOS dll files 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.
Mara tu .dll
s zinapopatikana inawezekana kuchambua msimbo wa .Net kwa njia ya statically 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.
Dynamic analysis inahusisha kuangalia kwa SSL pinning na kutumia zana kama Fridax kwa mabadiliko ya wakati wa kukimbia ya binary ya .NET katika programu za Xamarin. Misimbo ya Frida inapatikana ili kupita ugunduzi wa root au SSL pinning, ikiongeza uwezo wa uchambuzi.
Misimbo mingine ya Frida ya kuvutia:
Zana Uber APK Signer inarahisisha kusaini APK nyingi kwa kutumia funguo sawa, na inaweza kutumika kusaini tena programu baada ya mabadiliko kufanywa kwake.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)