hacktricks/mobile-pentesting/xamarin-apps.md
2024-02-11 02:07:06 +00:00

6.1 KiB

Xamarin Apps

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

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

Basiese Inligting

Xamarin is 'n open-source platform wat ontwikkel is vir ontwikkelaars om programme vir iOS, Android en Windows te bou met behulp van die .NET en C# raamwerke. Hierdie platform bied toegang tot verskeie gereedskap en uitbreidings om moderne toepassings doeltreffend te skep.

Xamarin se Argitektuur

  • Vir Android integreer Xamarin met Android- en Java-naamruimtes deur .NET-bindings, wat binne die Mono-uitvoeringsomgewing saam met die Android Runtime (ART) werk. Managed Callable Wrappers (MCW) en Android Callable Wrappers (ACW) fasiliteer kommunikasie tussen Mono en ART, wat albei op die Linux-kernel gebaseer is.
  • Vir iOS loop programme onder die Mono-runtime en maak volledige Ahead of Time (AOT) samestelling gebruik om C# .NET-kode na ARM-assambleertaal om te skakel. Hierdie proses loop saam met die Objective-C Runtime op 'n UNIX-soortgelyke kernel.

.NET Runtime en Mono Raamwerk

Die .NET-raamwerk sluit samestellings, klasse en naamruimtes vir toepassingsontwikkeling in, met die .NET Runtime wat kode-uitvoering bestuur. Dit bied platform-onafhanklikheid en agterwaartse versoenbaarheid. Die Mono-raamwerk is 'n open-source weergawe van die .NET-raamwerk, wat in 2005 begin is om .NET na Linux uit te brei, en word nou ondersteun deur Microsoft en gelei deur Xamarin.

Reverse Engineering van Xamarin Apps

Decompilering van Xamarin-samestellings

Decompilering omskep saamgestelde kode terug na bronkode. In Windows kan die Modules-venster in Visual Studio modules identifiseer vir decompilering, wat direkte toegang tot derdeparty-kode en die onttrekking van bronkode vir analise moontlik maak.

JIT vs AOT Samestelling

  • Android ondersteun Just-In-Time (JIT) en Ahead-Of-Time (AOT) samestelling, met 'n Hybrid AOT-modus vir optimale uitvoerspoed. Volledige AOT is eksklusief vir Enterprise-lisensies.
  • iOS gebruik slegs AOT-samestelling as gevolg van Apple se beperkings op dinamiese kode-uitvoering.

Onttrekking van dll-lêers uit APK/IPA

Om toegang te verkry tot die samestellings in 'n APK/IPA, pak die lêer uit en verken die samestellingsgids. Vir Android kan gereedskap soos XamAsmUnZ en xamarin-decompress dll-lêers ontkomprimeer.

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

Vir saamgestelde blobs in Android, kan pyxamstore hulle uitpak.

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

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

Dinamiese Analise

Dinamiese analise behels die nagaan van SSL-pinning en die gebruik van hulpmiddels soos Fridax vir tydveranderinge van die .NET-binêre lêer in Xamarin-toepassings. Frida-skripte is beskikbaar om wortelopsporing of SSL-pinning te omseil en analise-vermoëns te verbeter.

Ander interessante Frida-skripte:

Verdere inligting

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: