Xamarin Apps

Ondersteun HackTricks

Dit is 'n opsomming van die blogpos https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers

Basiese Inligting

Xamarin is 'n oop-bron platform ontwerp vir ontwikkelaars om toepassings vir iOS, Android en Windows te bou met behulp van die .NET en C# raamwerke. Hierdie platform bied toegang tot talle gereedskap en uitbreidings om moderne toepassings doeltreffend te skep.

Xamarin se Argitektuur

  • Vir Android integreer Xamarin met Android en Java namespaces deur .NET bindings, wat werk binne die Mono uitvoeringsomgewing saam met die Android Runtime (ART). Managed Callable Wrappers (MCW) en Android Callable Wrappers (ACW) fasiliteer kommunikasie tussen Mono en ART, wat albei op die Linux-kern gebou is.

  • Vir iOS loop toepassings onder die Mono runtime, wat volle Ahead of Time (AOT) kompilering gebruik om C# .NET kode in ARM assembly taal om te skakel. Hierdie proses loop saam met die Objective-C Runtime op 'n UNIX-agtige kern.

.NET Runtime en Mono Raamwerk

Die .NET raamwerk sluit assemblies, klasse en namespaces in vir toepassingsontwikkeling, met die .NET Runtime wat kode-uitvoering bestuur. Dit bied platformonafhanklikheid en agterwaartse kompatibiliteit. Die Mono Raamwerk is 'n oop-bron weergawe van die .NET raamwerk, wat in 2005 begin is om .NET na Linux uit te brei, nou deur Microsoft ondersteun en deur Xamarin gelei.

Omgekeerde Ingenieurswese van Xamarin Toepassings

Decompilering van Xamarin Assemblies

Decompilering transformeer gecompileerde kode terug na bronkode. In Windows kan die Modules venster in Visual Studio modules vir decompilering identifiseer, wat direkte toegang tot derdeparty kode moontlik maak en die ekstraksie van bronkode vir analise toelaat.

JIT vs AOT Kompilering

  • Android ondersteun Just-In-Time (JIT) en Ahead-Of-Time (AOT) kompilering, met 'n Hybride AOT-modus vir optimale uitvoeringsnelheid. Volle AOT is eksklusief vir Enterprise lisensies.

  • iOS gebruik slegs AOT kompilering weens Apple se beperkings op dinamiese kode-uitvoering.

Uittreksel van dll Lêers uit APK/IPA

Om toegang te verkry tot die assemblies in 'n APK/IPA, ontpak die lêer en verken die assemblies gids. Vir Android kan gereedskap soos XamAsmUnZ en xamarin-decompress dll lêers ontcompress.

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

Vir samestelling blobbies in Android kan pyxamstore dit ontpak.

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

iOS dll-lêers is maklik beskikbaar vir dekompilasie, wat beduidende dele van die toepassingskode onthul, wat dikwels 'n gemeenskaplike basis oor verskillende platforms deel.

Dinamiese Analise

Dinamiese analise behels die kontrole van SSL-pinning en die gebruik van gereedskap soos Fridax vir tydrenwysigings van die .NET-binary in Xamarin-apps. Frida-skripte is beskikbaar om worteldetektering of SSL-pinning te omseil, wat analise vermoëns verbeter.

Ander interessante Frida-skripte:

Verdere inligting

Support HackTricks

Last updated