Xamarin Apps
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Xamarin is 'n oopbron platform ontwerp vir ontwikkelaars om toepassings vir iOS, Android en Windows te bou met die .NET en C# raamwerke. Hierdie platform bied toegang tot talle gereedskap en uitbreidings om moderne toepassings doeltreffend te skep.
Vir Android integreer Xamarin met Android en Java namespaces deur .NET bindings, wat binne die Mono uitvoeringsomgewing werk 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.
Die .NET raamwerk sluit assemblies, klasse en namespaces in vir toepassingsontwikkeling, met die .NET Runtime wat kode-uitvoering bestuur. Dit bied platformonafhanklikheid en agterwaartse verenigbaarheid. Die Mono Raamwerk is 'n oopbron 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.
De-kompilering transformeer gecompileerde kode terug na bronkode. In Windows kan die Modules venster in Visual Studio modules vir de-kompilering identifiseer, wat direkte toegang tot derdeparty kode en ekstraksie van bronkode vir analise moontlik maak.
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.
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.
In gevalle waar dit na dekompilering van die APK moontlik is om die unknown/assemblies/ gids met die .dll
lêers daarin te sien, is dit moontlik om dnSpy direk oor die .dlls
te gebruik om dit te analiseer.
Echter, soms word die assemblies.blob
en assemblies.manifest
lêers binne die unknown/assemblies/ gids gevind. Die hulpmiddel pyxamstore kan gebruik word om die assemblies.blob
lêer in Xamarin-apps uit te pak, wat toegang tot die .NET assemblies vir verdere analise moontlik maak:
iOS dll-lêers is maklik beskikbaar vir dekompilasie, wat beduidende gedeeltes van die toepassingskode onthul, wat dikwels 'n gemeenskaplike basis oor verskillende platforms deel.
Sodra die .dll
s verkry is, is dit moontlik om die .Net-kode staties te analiseer met behulp van gereedskap soos dnSpy of ILSpy wat sal toelaat om die kode van die app te wysig. Dit kan baie nuttig wees om die toepassing te manipuleer om beskermings te omseil, byvoorbeeld.
Let daarop dat jy die app weer moet pak en weer moet teken na die wysigings.
Dinamiese analise behels die nagaan 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:
Die gereedskap Uber APK Signer vereenvoudig die teken van verskeie APK's met dieselfde sleutel, en kan gebruik word om 'n app weer te teken nadat daar wysigings aan gemaak is.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)