6.3 KiB
Xamarin Apps
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
To jest streszczenie artykułu na blogu https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers
Podstawowe informacje
Xamarin to platforma open-source przeznaczona dla programistów do tworzenia aplikacji dla iOS, Androida i Windows przy użyciu frameworków .NET i C#. Ta platforma oferuje dostęp do licznych narzędzi i rozszerzeń umożliwiających efektywne tworzenie nowoczesnych aplikacji.
Architektura Xamarin
- Dla systemu Android, Xamarin integruje się z przestrzeniami nazw Androida i Javy za pomocą powiązań .NET, działając w środowisku wykonawczym Mono obok Android Runtime (ART). Zarówno Managed Callable Wrappers (MCW), jak i Android Callable Wrappers (ACW) ułatwiają komunikację między Mono a ART, oba zbudowane na jądrze Linuxa.
- Dla systemu iOS, aplikacje działają w środowisku wykonawczym Mono, wykorzystując pełną kompilację Ahead of Time (AOT) do przekształcenia kodu C# .NET w język asemblera ARM. Ten proces działa obok Objective-C Runtime na jądrze przypominającym UNIX.
.NET Runtime i Mono Framework
.NET framework zawiera zestawy, klasy i przestrzenie nazw do tworzenia aplikacji, a .NET Runtime zarządza wykonaniem kodu. Oferuje on niezależność platformy i wsteczną kompatybilność. Mono Framework to wersja open-source frameworku .NET, rozpoczęta w 2005 roku w celu rozszerzenia .NET na Linux, obecnie wspierana przez Microsoft i prowadzona przez Xamarin.
Reverse Engineering aplikacji Xamarin
Dekompilacja zestawów Xamarin
Dekompilacja przekształca skompilowany kod z powrotem na kod źródłowy. W systemie Windows, okno Moduły w programie Visual Studio może zidentyfikować moduły do dekompilacji, umożliwiając bezpośredni dostęp do kodu firm trzecich i wyodrębnienie kodu źródłowego do analizy.
Kompilacja JIT vs AOT
- Android obsługuje kompilację Just-In-Time (JIT) i Ahead-Of-Time (AOT), z trybem Hybrid AOT dla optymalnej prędkości wykonania. Pełna kompilacja AOT jest dostępna tylko w licencjach Enterprise.
- iOS wykorzystuje wyłącznie kompilację AOT ze względu na ograniczenia Apple dotyczące dynamicznego wykonywania kodu.
Wyodrębnianie plików dll z APK/IPA
Aby uzyskać dostęp do zestawów w pliku APK/IPA, należy rozpakować plik i przejrzeć katalog zestawów. Dla systemu Android, narzędzia takie jak XamAsmUnZ i xamarin-decompress mogą rozpakować pliki dll.
python3 xamarin-decompress.py -o /path/to/decompressed/apk
Dla bloków montażowych w systemie Android, pyxamstore może je rozpakować.
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
Pliki DLL dla systemu iOS są łatwo dostępne do dekompilacji, ujawniając znaczną część kodu aplikacji, który często jest wspólny dla różnych platform.
Analiza dynamiczna
Analiza dynamiczna polega na sprawdzaniu przypinania SSL i korzystaniu z narzędzi takich jak Fridax do modyfikacji w czasie wykonywania binarnego pliku .NET w aplikacjach Xamarin. Dostępne są skrypty Frida umożliwiające obejście wykrywania roota lub przypinania SSL, zwiększając możliwości analizy.
Inne interesujące skrypty Frida:
Dodatkowe informacje
- https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers
- https://thecobraden.com/posts/unpacking_xamarin_assembly_stores/
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR do HackTricks i HackTricks Cloud github repos.