# Xamarin Apps {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} This is a summary of the blog post [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers) ## **Informaci贸n B谩sica** Xamarin es una **plataforma de c贸digo abierto** dise帽ada para que los desarrolladores **crean aplicaciones para iOS, Android y Windows** utilizando los frameworks .NET y C#. Esta plataforma ofrece acceso a numerosas herramientas y extensiones para crear aplicaciones modernas de manera eficiente. ### Arquitectura de Xamarin - Para **Android**, Xamarin se integra con los espacios de nombres de Android y Java a trav茅s de enlaces .NET, operando dentro del entorno de ejecuci贸n Mono junto con el Android Runtime (ART). Los Managed Callable Wrappers (MCW) y Android Callable Wrappers (ACW) facilitan la comunicaci贸n entre Mono y ART, ambos construidos sobre el n煤cleo de Linux. - Para **iOS**, las aplicaciones se ejecutan bajo el entorno de ejecuci贸n Mono, utilizando una compilaci贸n completa Ahead of Time (AOT) para convertir el c贸digo C# .NET en lenguaje ensamblador ARM. Este proceso se ejecuta junto con el Objective-C Runtime en un n煤cleo similar a UNIX. ### Entorno de Ejecuci贸n .NET y Framework Mono El **framework .NET** incluye ensamblados, clases y espacios de nombres para el desarrollo de aplicaciones, con el Entorno de Ejecuci贸n .NET gestionando la ejecuci贸n del c贸digo. Ofrece independencia de plataforma y compatibilidad hacia atr谩s. El **Framework Mono** es una versi贸n de c贸digo abierto del framework .NET, iniciado en 2005 para extender .NET a Linux, ahora respaldado por Microsoft y liderado por Xamarin. ### Ingenier铆a Inversa de Aplicaciones Xamarin #### Descompilaci贸n de Ensamblados Xamarin La descompilaci贸n transforma el c贸digo compilado de nuevo en c贸digo fuente. En Windows, la ventana de M贸dulos en Visual Studio puede identificar m贸dulos para descompilaci贸n, permitiendo el acceso directo al c贸digo de terceros y la extracci贸n del c贸digo fuente para an谩lisis. #### Compilaci贸n JIT vs AOT - **Android** admite la compilaci贸n Just-In-Time (JIT) y Ahead-Of-Time (AOT), con un modo h铆brido AOT para una velocidad de ejecuci贸n 贸ptima. La AOT completa es exclusiva para licencias empresariales. - **iOS** emplea 煤nicamente la compilaci贸n AOT debido a las restricciones de Apple sobre la ejecuci贸n de c贸digo din谩mico. ### Extracci贸n de archivos dll de APK/IPA Para acceder a los ensamblados en un APK/IPA, descomprime el archivo y explora el directorio de ensamblados. Para Android, herramientas como [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) y [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) pueden descomprimir archivos dll. ```bash python3 xamarin-decompress.py -o /path/to/decompressed/apk ``` Para ensamblar blobs en Android, [pyxamstore](https://github.com/jakev/pyxamstore) puede descomprimirlos. ```bash pyxamstore unpack -d /path/to/decompressed/apk/assemblies/ ``` Los archivos dll de iOS son f谩cilmente accesibles para la descompilaci贸n, revelando porciones significativas del c贸digo de la aplicaci贸n, que a menudo comparte una base com煤n en diferentes plataformas. ### An谩lisis Din谩mico El an谩lisis din谩mico implica verificar la fijaci贸n de SSL y usar herramientas como [Fridax](https://github.com/NorthwaveSecurity/fridax) para modificaciones en tiempo de ejecuci贸n del binario .NET en aplicaciones Xamarin. Los scripts de Frida est谩n disponibles para eludir la detecci贸n de root o la fijaci贸n de SSL, mejorando las capacidades de an谩lisis. Otros scripts interesantes de Frida: * [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/) * [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/) * [**Frida-xamarin-unpin**](https://github.com/GoSecure/frida-xamarin-unpin) ## M谩s informaci贸n * [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers) * [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/) {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 馃挰 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}