# 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) ## **Podstawowe informacje** Xamarin to **platforma open-source** zaprojektowana dla programist贸w do **tworzenia aplikacji na iOS, Android i Windows** przy u偶yciu framework贸w .NET i C#. Ta platforma oferuje dost臋p do licznych narz臋dzi i rozszerze艅, aby efektywnie tworzy膰 nowoczesne aplikacje. ### Architektura Xamarin - Dla **Androida**, Xamarin integruje si臋 z przestrzeniami nazw Android i Java poprzez powi膮zania .NET, dzia艂aj膮c w 艣rodowisku wykonawczym Mono obok Android Runtime (ART). Managed Callable Wrappers (MCW) i Android Callable Wrappers (ACW) u艂atwiaj膮 komunikacj臋 mi臋dzy Mono a ART, kt贸re s膮 zbudowane na j膮drze Linuxa. - Dla **iOS**, aplikacje dzia艂aj膮 pod runtime Mono, wykorzystuj膮c pe艂n膮 kompilacj臋 Ahead of Time (AOT) do konwersji kodu C# .NET na j臋zyk asemblera ARM. Proces ten dzia艂a obok Objective-C Runtime na j膮drze podobnym do UNIX. ### Runtime .NET i framework Mono **Framework .NET** obejmuje zestawy, klasy i przestrzenie nazw do rozwoju aplikacji, a Runtime .NET zarz膮dza wykonaniem kodu. Oferuje niezale偶no艣膰 platformy i zgodno艣膰 wsteczn膮. **Framework Mono** to wersja open-source frameworka .NET, rozpocz臋ta w 2005 roku, aby rozszerzy膰 .NET na Linuxa, obecnie wspierana przez Microsoft i kierowana przez Xamarin. ### In偶ynieria wsteczna aplikacji Xamarin #### Dekompilacja zestaw贸w Xamarin Dekompilacja przekszta艂ca skompilowany kod z powrotem w kod 藕r贸d艂owy. W systemie Windows okno Modu艂y w Visual Studio mo偶e identyfikowa膰 modu艂y do dekompilacji, umo偶liwiaj膮c bezpo艣redni dost臋p do kodu stron trzecich i ekstrakcj臋 kodu 藕r贸d艂owego do analizy. #### Kompilacja JIT vs AOT - **Android** wspiera kompilacj臋 Just-In-Time (JIT) oraz Ahead-Of-Time (AOT), z hybrydowym trybem AOT dla optymalnej pr臋dko艣ci wykonania. Pe艂na AOT jest zarezerwowana dla licencji Enterprise. - **iOS** stosuje wy艂膮cznie kompilacj臋 AOT z powodu ogranicze艅 Apple dotycz膮cych dynamicznego wykonywania kodu. ### Ekstrakcja plik贸w dll z APK/IPA Aby uzyska膰 dost臋p do zestaw贸w w pliku APK/IPA, rozpakuj plik i przeszukaj katalog zestaw贸w. Dla Androida narz臋dzia takie jak [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) i [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) mog膮 dekompresowa膰 pliki dll. ```bash python3 xamarin-decompress.py -o /path/to/decompressed/apk ``` Dla blob贸w assembly w Androidzie, [pyxamstore](https://github.com/jakev/pyxamstore) mo偶e je rozpakowa膰. ```bash pyxamstore unpack -d /path/to/decompressed/apk/assemblies/ ``` Pliki dll iOS s膮 艂atwo dost臋pne do dekompilacji, ujawniaj膮c znaczn膮 cz臋艣膰 kodu aplikacji, kt贸ry cz臋sto dzieli wsp贸ln膮 baz臋 na r贸偶nych platformach. ### Analiza dynamiczna Analiza dynamiczna polega na sprawdzaniu SSL pinning i u偶ywaniu narz臋dzi takich jak [Fridax](https://github.com/NorthwaveSecurity/fridax) do modyfikacji binarnych .NET w aplikacjach Xamarin w czasie rzeczywistym. Skrypty Frida s膮 dost臋pne, aby obej艣膰 wykrywanie roota lub SSL pinning, co zwi臋ksza mo偶liwo艣ci analizy. Inne interesuj膮ce skrypty 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) ## Dalsze informacje * [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 %}