hacktricks/mobile-pentesting/xamarin-apps.md
2024-02-10 13:11:20 +00:00

6.1 KiB

Xamarin aplikacije

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Ovo je sažetak blog posta https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers

Osnovne informacije

Xamarin je open-source platforma dizajnirana za razvoj aplikacija za iOS, Android i Windows koristeći .NET i C# framework-ove. Ova platforma pruža pristup brojnim alatima i ekstenzijama za efikasno kreiranje modernih aplikacija.

Xamarin-ova arhitektura

  • Za Android, Xamarin se integriše sa Android i Java namespace-ovima putem .NET veza, radeći unutar Mono izvršnog okruženja zajedno sa Android Runtime-om (ART). Managed Callable Wrappers (MCW) i Android Callable Wrappers (ACW) olakšavaju komunikaciju između Mono-a i ART-a, koji su oboje izgrađeni na Linux kernelu.
  • Za iOS, aplikacije se izvršavaju pod Mono runtime-om, koristeći potpunu Ahead of Time (AOT) kompilaciju za pretvaranje C# .NET koda u ARM asemblerski jezik. Ovaj proces se izvršava zajedno sa Objective-C Runtime-om na UNIX-sličnom kernelu.

.NET Runtime i Mono Framework

.NET framework uključuje skupove, klase i namespace-ove za razvoj aplikacija, pri čemu .NET Runtime upravlja izvršenjem koda. On nudi platformsku nezavisnost i kompatibilnost unazad. Mono Framework je open-source verzija .NET framework-a, pokrenuta 2005. godine da bi se .NET proširio na Linux, sada podržana od strane Microsoft-a i vođena od strane Xamarin-a.

Reverse inženjering Xamarin aplikacija

Dekompilacija Xamarin Assembly-ja

Dekompilacija transformiše kompilirani kod nazad u izvorni kod. Na Windows-u, prozor Moduli u Visual Studio-u može identifikovati module za dekompilaciju, omogućavajući direktni pristup kodu treće strane i izvlačenje izvornog koda radi analize.

JIT vs AOT kompilacija

  • Android podržava Just-In-Time (JIT) i Ahead-Of-Time (AOT) kompilaciju, sa Hibridnim AOT režimom za optimalnu brzinu izvršenja. Potpuna AOT je ekskluzivna za Enterprise licence.
  • iOS isključivo koristi AOT kompilaciju zbog Apple-ovih ograničenja u vezi izvršavanja dinamičkog koda.

Izdvajanje dll fajlova iz APK/IPA

Da biste pristupili skupovima u APK/IPA fajlu, raspakujte fajl i istražite direktorijum skupova. Za Android, alati poput XamAsmUnZ i xamarin-decompress mogu dekompresovati dll fajlove.

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

Za skupove montaže u Androidu, pyxamstore može ih raspakovati.

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

iOS dll datoteke su lako dostupne za dekompilaciju, otkrivajući značajne delove koda aplikacije, koji često dele zajedničku osnovu na različitim platformama.

Dinamička analiza

Dinamička analiza uključuje proveru SSL pinning-a i korišćenje alata poput Fridax za izvršne modifikacije .NET binarnih fajlova u Xamarin aplikacijama. Frida skripte su dostupne za zaobilaženje detekcije root-a ili SSL pinning-a, poboljšavajući mogućnosti analize.

Druga interesantna Frida skripta:

Dodatne informacije

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: