Xamarin Apps

Support HackTricks

Hii ni muhtasari wa chapisho la blog https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers

Basic Information

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.

Xamarin's Architecture

  • 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 kamili Ahead of Time (AOT) compilation 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 and Mono Framework

.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 linaungwa mkono na Microsoft na kuongozwa na Xamarin.

Reverse Engineering Xamarin Apps

Decompilation of Xamarin Assemblies

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.

JIT vs AOT Compilation

  • 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.

Extracting dll Files from APK/IPA

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

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

Kwa assembly blobs katika Android, pyxamstore inaweza kuyafungua.

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

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

Uchambuzi wa Kijadi

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

Skripti nyingine za Frida zinazovutia:

Taarifa zaidi

Support HackTricks

Last updated