iOS Basic Testing Operations
Περίληψη Αναγνώρισης και Πρόσβασης Συσκευής iOS
Αναγνώριση του UDID μιας συσκευής iOS
Για να αναγνωρίσουμε μοναδικά μια συσκευή iOS, χρησιμοποιείται μια 40-ψήφια ακολουθία που ονομάζεται UDID. Στο macOS Catalina ή νεότερο, μπορεί να βρεθεί στην εφαρμογή Finder, καθώς το iTunes δεν υπάρχει πλέον. Η συσκευή, αφού συνδεθεί μέσω USB και επιλεγεί στο Finder, αποκαλύπτει το UDID της μαζί με άλλες πληροφορίες όταν κάνουμε κλικ στις λεπτομέρειες κάτω από το όνομά της.
Για εκδόσεις του macOS πριν από το Catalina, το iTunes διευκολύνει την ανακάλυψη του UDID. Λεπτομερείς οδηγίες μπορούν να βρεθούν εδώ.
Εργαλεία γραμμής εντολών προσφέρουν εναλλακτικές μεθόδους για την ανάκτηση του UDID:
Χρήση του εργαλείου I/O Registry Explorer
ioreg
:
Χρήση του
ideviceinstaller
για macOS (και Linux):
Χρήση του
system_profiler
:
Χρήση του
instruments
για να εμφανιστούν οι συσκευές:
Πρόσβαση στο Shell της Συσκευής
Η πρόσβαση μέσω SSH ενεργοποιείται εγκαθιστώντας το πακέτο OpenSSH μετά την απελευθέρωση της συσκευής, επιτρέποντας συνδέσεις μέσω ssh root@<διεύθυνση_ΙΡ_συσκευής>
. Είναι κρίσιμο να αλλάξετε τους προεπιλεγμένους κωδικούς (alpine
) για τους χρήστες root
και mobile
για να ασφαλίσετε τη συσκευή.
Η SSH μέσω USB γίνεται απαραίτητη σε περίπτωση που δεν υπάρχει Wi-Fi, χρησιμοποιώντας το iproxy
για την αντιστοίχιση των θυρών της συσκευής για συνδέσεις SSH. Αυτή η ρύθμιση επιτρέπει την πρόσβαση μέσω SSH μέσω USB εκτελώντας:
Εφαρμογές κέλυφου στη συσκευή, όπως το NewTerm 2, διευκολύνουν την άμεση αλληλεπίδραση με τη συσκευή, ιδιαίτερα χρήσιμη για την επίλυση προβλημάτων. Μπορούν επίσης να δημιουργηθούν αντίστροφα κέλυφα SSH για απομακρυσμένη πρόσβαση από τον υπολογιστή του χρήστη.
Επαναφορά Ξεχασμένων Κωδικών Πρόσβασης
Για να επαναφέρετε έναν ξεχασμένο κωδικό πρόσβασης στην προεπιλεγμένη τιμή (alpine
), είναι απαραίτητο να επεξεργαστείτε το αρχείο /private/etc/master.passwd
. Αυτό περιλαμβάνει την αντικατάσταση του υπάρχοντος κατακερματισμένου κωδικού με τον κατακερματισμένο κωδικό για το alpine
δίπλα από τις καταχωρήσεις των χρηστών root
και mobile
.
Τεχνικές Μεταφοράς Δεδομένων
Μεταφορά Αρχείων Δεδομένων Εφαρμογής
Αρχειοθέτηση και Ανάκτηση μέσω SSH και SCP: Είναι απλό να αρχειοθετήσετε τον κατάλογο Δεδομένων της εφαρμογής χρησιμοποιώντας την εντολή tar
και στη συνέχεια να το μεταφέρετε χρησιμοποιώντας την εντολή scp
. Η παρακάτω εντολή αρχειοθετεί τον κατάλογο Δεδομένων σε ένα αρχείο .tgz, το οποίο στη συνέχεια αντλείται από τη συσκευή:
Εργαλεία Γραφικού Περιβάλλοντος
Χρήση των iFunbox και iExplorer: Αυτά τα εργαλεία γραφικού περιβάλλοντος είναι χρήσιμα για τη διαχείριση αρχείων σε συσκευές iOS. Ωστόσο, από την έκδοση iOS 8.4 και μετά, η Apple περιόρισε την πρόσβαση αυτών των εργαλείων στον αποθηκευτικό χώρο των εφαρμογών, εκτός αν η συσκευή έχει γίνει jailbreak.
Χρήση του Objection για τη Διαχείριση Αρχείων
Διαδραστική Κέλυφος με το Objection: Με την εκκίνηση του Objection, έχετε πρόσβαση στον φάκελο Bundle μιας εφαρμογής. Από εδώ, μπορείτε να πλοηγηθείτε στον φάκελο Documents της εφαρμογής και να διαχειριστείτε αρχεία, συμπεριλαμβανομένης της λήψης και αποστολής τους από και προς τη συσκευή iOS.
Απόκτηση και Εξαγωγή Εφαρμογών
Απόκτηση του αρχείου IPA
Σύνδεσμος Διανομής Over-The-Air (OTA): Οι εφαρμογές που διανέμονται για τεστ μέσω OTA μπορούν να ληφθούν χρησιμοποιώντας το εργαλείο λήψης αρχείων ITMS services asset downloader, το οποίο εγκαθίσταται μέσω του npm και χρησιμοποιείται για να αποθηκεύσει το αρχείο IPA τοπικά.
Εξαγωγή του δυαδικού αρχείου της εφαρμογής
Από ένα IPA: Αποσυμπιέστε το IPA για να έχετε πρόσβαση στο αποκρυπτογραφημένο δυαδικό αρχείο της εφαρμογής.
Από μια συσκευή με Jailbreak: Εγκαταστήστε την εφαρμογή και εξαγάγετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη.
Διαδικασία αποκρυπτογράφησης
Επισκόπηση της χειροκίνητης αποκρυπτογράφησης: Τα δυαδικά αρχεία των εφαρμογών iOS κρυπτογραφούνται από την Apple χρησιμοποιώντας το FairPlay. Για να αναστρέψετε τη διαδικασία, πρέπει να αποθηκεύσετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη. Η διαδικασία αποκρυπτογράφησης περιλαμβάνει τον έλεγχο της σημαίας PIE, την προσαρμογή των σημαιών μνήμης, τον εντοπισμό του κρυπτογραφημένου τμήματος και στη συνέχεια την αποθήκευση και αντικατάσταση αυτού του τμήματος με την αποκρυπτογραφημένη του μορφή.
Έλεγχος και τροποποίηση της σημαίας PIE:
Αναγνώριση Κρυπτογραφημένης Ενότητας και Αποθήκευση Μνήμης:
Προσδιορίστε τις αρχικές και τελικές διευθύνσεις της κρυπτογραφημένης ενότητας χρησιμοποιώντας το otool
και αποθηκεύστε τη μνήμη από την jailbroken συσκευή χρησιμοποιώντας το gdb.
Αντικατάσταση της Κρυπτογραφημένης Ενότητας:
Αντικαταστήστε την κρυπτογραφημένη ενότητα στον αρχικό δυαδικό κώδικα της εφαρμογής με την αποκρυπτογραφημένη αντιγραφή.
Ολοκλήρωση Αποκρυπτογράφησης: Τροποποιήστε τα μεταδεδομένα του δυαδικού αρχείου για να υποδείξετε την απουσία κρυπτογράφησης χρησιμοποιώντας εργαλεία όπως το MachOView, ορίζοντας το cryptid
σε 0.
Αποκρυπτογράφηση (Αυτόματα)
frida-ios-dump
Το εργαλείο frida-ios-dump χρησιμοποιείται για την αυτόματη αποκρυπτογράφηση και εξαγωγή εφαρμογών από συσκευές iOS. Αρχικά, πρέπει να ρυθμίσετε το dump.py
για να συνδεθεί με τη συσκευή iOS, που μπορεί να γίνει μέσω του localhost στη θύρα 2222 μέσω iproxy ή απευθείας μέσω της IP διεύθυνσης και της θύρας της συσκευής.
Οι εφαρμογές που είναι εγκατεστημένες στη συσκευή μπορούν να εμφανιστούν με την εντολή:
Για να αντλήσετε πληροφορίες από μια συγκεκριμένη εφαρμογή, όπως το Telegram, χρησιμοποιείται η παρακάτω εντολή:
Αυτή η εντολή ξεκινά την αποθήκευση της εφαρμογής, με αποτέλεσμα τη δημιουργία ενός αρχείου Telegram.ipa
στον τρέχοντα κατάλογο. Αυτή η διαδικασία είναι κατάλληλη για συσκευές με jailbreak, καθώς μη υπογεγραμμένες ή πλαστές εφαρμογές μπορούν να επανεγκατασταθούν χρησιμοποιώντας εργαλεία όπως το ios-deploy.
flexdecrypt
Το εργαλείο flexdecrypt, μαζί με το wrapper του flexdump, επιτρέπει την εξαγωγή αρχείων IPA από εγκατεστημένες εφαρμογές. Οι εντολές εγκατάστασης για το flexdecrypt στη συσκευή περιλαμβάνουν το κατέβασμα και την εγκατάσταση του πακέτου .deb
. Το flexdump μπορεί να χρησιμοποιηθεί για την εμφάνιση και αποθήκευση εφαρμογών, όπως φαίνεται στις παρακάτω εντολές:
bagbak
bagbak, ένα ακόμα εργαλείο βασισμένο στο Frida, απαιτεί ένα jailbroken συσκευή για την αποκρυπτογράφηση των εφαρμογών:
r2flutch
Το r2flutch, χρησιμοποιώντας τόσο το radare όσο και το frida, χρησιμεύει για την αποκρυπτογράφηση και την αποθήκευση εφαρμογών. Περισσότερες πληροφορίες μπορούν να βρεθούν στην σελίδα του GitHub.
Εγκατάσταση Εφαρμογών
Ο όρος sideloading αναφέρεται στην εγκατάσταση εφαρμογών εκτός του επίσημου App Store. Αυτή η διαδικασία χειρίζεται από τον installd daemon και απαιτεί τις εφαρμογές να έχουν υπογραφεί με πιστοποιητικό που έχει εκδοθεί από την Apple. Οι συσκευές με jailbreak μπορούν να παρακάμψουν αυτήν τη διαδικασία μέσω του AppSync, επιτρέποντας την εγκατάσταση πακέτων IPA με ψευδή υπογραφή.
Εργαλεία Sideloading
Cydia Impactor: Ένα εργαλείο για την υπογραφή και εγκατάσταση αρχείων IPA σε iOS και αρχείων APK σε Android. Οδηγοί και αντιμετώπιση προβλημάτων μπορούν να βρεθούν στο yalujailbreak.net.
libimobiledevice: Μια βιβλιοθήκη για Linux και macOS για την επικοινωνία με συσκευές iOS. Παρέχονται εντολές εγκατάστασης και παραδείγματα χρήσης για το ideviceinstaller για την εγκατάσταση εφαρμογών μέσω USB.
ipainstaller: Αυτό το εργαλείο γραμμής εντολών επιτρέπει την άμεση εγκατάσταση εφαρμογών σε συσκευές iOS.
ios-deploy: Για τους χρήστες macOS, το ios-deploy εγκαθιστά εφαρμογές iOS από τη γραμμή εντολών. Η αποσυμπίεση του IPA και η χρήση της σημαίας
-m
για την άμεση εκκίνηση της εφαρμογής είναι μέρος της διαδικασίας.Xcode: Χρησιμοποιήστε το Xcode για να εγκαταστήσετε εφαρμογές πηγαίνοντας στο Window/Devices and Simulators και προσθέτοντας την εφαρμογή στις Installed Apps.
Επιτρέψτε την Εγκατάσταση Εφαρμογών σε Μη-Συσκευές iPad
Για να εγκαταστήσετε εφαρμογές που είναι σχεδιασμένες για iPad σε συσκευές iPhone ή iPod touch, η τιμή UIDeviceFamily στο αρχείο Info.plist πρέπει να αλλάξει σε 1. Ωστόσο, αυτή η τροποποίηση απαιτεί την επανυπογραφή του αρχείου IPA λόγω ελέγχων επαλήθευσης υπογραφής.
Σημείωση: Αυτή η μέθοδος μπορεί να αποτύχει εάν η εφαρμογή απαιτεί δυνατότητες που είναι αποκλειστικές για νεότερα μοντέλα iPad ενώ χρησιμοποιείται ένα παλαιότερο iPhone ή iPod touch.
Αναφορές
Last updated