Xamarin Apps

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Αυτό είναι ένα σύνοψη του άρθρου του ιστολογίου https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers

Βασικές Πληροφορίες

Το Xamarin είναι μια ανοικτού κώδικα πλατφόρμα σχεδιασμένη για προγραμματιστές για να δημιουργούν εφαρμογές για iOS, Android και Windows χρησιμοποιώντας τα πλαίσια .NET και C#. Αυτή η πλατφόρμα προσφέρει πρόσβαση σε πολλά εργαλεία και επεκτάσεις για τη δημιουργία σύγχρονων εφαρμογών με αποδοτικότητα.

Αρχιτεκτονική του Xamarin

  • Για το Android, το Xamarin ενσωματώνεται με τα ονόματα χώρων ονομάτων Android και Java μέσω των δεσμεύσεων .NET, λειτουργώντας μέσα στο περιβάλλον εκτέλεσης Mono δίπλα στο Android Runtime (ART). Οι Managed Callable Wrappers (MCW) και οι Android Callable Wrappers (ACW) διευκολύνουν την επικοινωνία μεταξύ του Mono και του ART, τα οποία και τα δύο βασίζονται στον πυρήνα του Linux.

  • Για το iOS, οι εφαρμογές λειτουργούν υπό τον χρόνο εκτέλεσης Mono, χρησιμοποιώντας πλήρη μεταγλώττιση Ahead of Time (AOT) για τη μετατροπή του κώδικα C# .NET σε γλώσσα συναρμολόγησης ARM. Αυτή η διαδικασία λειτουργεί δίπλα στον χρόνο εκτέλεσης Objective-C σε έναν πυρήνα παρόμοιο με UNIX.

.NET Runtime και Mono Framework

Το πλαίσιο .NET περιλαμβάνει συλλογές, κλάσεις και ονόματα χώρων για την ανάπτυξη εφαρμογών, με τον .NET Runtime να διαχειρίζεται την εκτέλεση του κώδικα. Προσφέρει ανεξαρτησία πλατφόρμας και συμβατότητα προς τα πίσω. Το Mono Framework είναι μια έκδοση του πλαισίου .NET ανοικτού κώδικα, που ξεκίνησε το 2005 για να επεκτείνει το .NET στο Linux, τώρα υποστηρίζεται από τη Microsoft και διευθύνεται από το Xamarin.

Ανάπτυξη Ανάπτυξης Εφαρμογών Xamarin

Αποσυμπίεση των Συναθροίσεων Xamarin

Η αποσυμπίεση μετατρέπει το μεταγλωττισμένο κώδικα πίσω σε πηγαίο κώδικα. Στα Windows, το παράθυρο Ενότητες στο Visual Studio μπορεί να αναγνωρίσει τις ενότητες για αποσυμπίεση, επιτρέποντας την άμεση πρόσβαση σε κώδικα τρίτων και εξαγωγή πηγαίου κώδικα για ανάλυση.

Μεταγλώττιση JIT έναντι Μεταγλώττισης AOT

  • Το Android υποστηρίζει τη μεταγλώττιση Just-In-Time (JIT) και Ahead-Of-Time (AOT), με έναν υβριδικό τρόπο AOT για βέλτιστη ταχύτητα εκτέλεσης. Η πλήρης AOT είναι αποκλειστική για τις επιχειρηματικές άδειες.

  • Το iOS χρησιμοποιεί αποκλειστικά τη μεταγλώττιση AOT λόγω των περιορισμών της Apple στη δυναμική εκτέλεση κώδικα.

Εξαγωγή αρχείων dll από το APK/IPA

Για να έχετε πρόσβαση στις συναθροίσεις σε ένα APK/IPA, αποσυμπιέστε το αρχείο και εξερευνήστε τον κατάλογο των συναθροίσεων. Για το Android, εργαλεία όπως το XamAsmUnZ και το xamarin-decompress μπορούν να αποσυμπιέσουν τα αρχεία dll.

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

Για τα assembly blobs στο Android, το pyxamstore μπορεί να τα αποσυμπιέσει.

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

Τα αρχεία dll του iOS είναι εύκολα προσβάσιμα για αποσυμπίληση, αποκαλύπτοντας σημαντικά μέρη του κώδικα της εφαρμογής, ο οποίος συχνά μοιράζεται ένα κοινό βάση σε διάφορες πλατφόρμες.

Δυναμική Ανάλυση

Η δυναμική ανάλυση περιλαμβάνει τον έλεγχο για SSL pinning και τη χρήση εργαλείων όπως το Fridax για τροποποιήσεις κατά την εκτέλεση του δυαδικού αρχείου .NET σε εφαρμογές Xamarin. Υπάρχουν διαθέσιμα scripts του Frida για την παράκαμψη του εντοπισμού root ή του SSL pinning, βελτιώνοντας τις δυνατότητες ανάλυσης.

Άλλα ενδιαφέροντα scripts του Frida:

Περαιτέρω πληροφορίες

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated