macOS Bundles
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Τα bundles στο macOS λειτουργούν ως δοχεία για μια ποικιλία πόρων, συμπεριλαμβανομένων εφαρμογών, βιβλιοθηκών και άλλων απαραίτητων αρχείων, κάνοντάς τα να εμφανίζονται ως ενιαία αντικείμενα στο Finder, όπως τα γνωστά αρχεία *.app
. Το πιο συχνά συναντώμενο bundle είναι το .app
bundle, αν και άλλοι τύποι όπως .framework
, .systemextension
και .kext
είναι επίσης διαδεδομένοι.
Μέσα σε ένα bundle, ιδιαίτερα μέσα στον φάκελο <application>.app/Contents/
, φιλοξενούνται διάφοροι σημαντικοί πόροι:
_CodeSignature: Αυτός ο φάκελος αποθηκεύει λεπτομέρειες υπογραφής κώδικα που είναι ζωτικής σημασίας για την επαλήθευση της ακεραιότητας της εφαρμογής. Μπορείτε να ελέγξετε τις πληροφορίες υπογραφής κώδικα χρησιμοποιώντας εντολές όπως: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%
MacOS: Περιέχει το εκτελέσιμο δυαδικό αρχείο της εφαρμογής που εκτελείται κατά την αλληλεπίδραση του χρήστη.
Resources: Ένας αποθηκευτικός χώρος για τα στοιχεία διεπαφής χρήστη της εφαρμογής, συμπεριλαμβανομένων εικόνων, εγγράφων και περιγραφών διεπαφής (nib/xib αρχεία).
Info.plist: Λειτουργεί ως το κύριο αρχείο ρύθμισης της εφαρμογής, κρίσιμο για το σύστημα ώστε να αναγνωρίζει και να αλληλεπιδρά με την εφαρμογή κατάλληλα.
Το αρχείο Info.plist
είναι θεμελιώδες για τη ρύθμιση της εφαρμογής, περιέχοντας κλειδιά όπως:
CFBundleExecutable: Προσδιορίζει το όνομα του κύριου εκτελέσιμου αρχείου που βρίσκεται στον φάκελο Contents/MacOS
.
CFBundleIdentifier: Παρέχει έναν παγκόσμιο αναγνωριστικό για την εφαρμογή, που χρησιμοποιείται εκτενώς από το macOS για τη διαχείριση εφαρμογών.
LSMinimumSystemVersion: Υποδεικνύει την ελάχιστη έκδοση του macOS που απαιτείται για να εκτελείται η εφαρμογή.
Για να εξερευνήσετε το περιεχόμενο ενός bundle, όπως το Safari.app
, μπορεί να χρησιμοποιηθεί η εξής εντολή: bash ls -lR /Applications/Safari.app/Contents
Αυτή η εξερεύνηση αποκαλύπτει φακέλους όπως _CodeSignature
, MacOS
, Resources
, και αρχεία όπως Info.plist
, καθένα από τα οποία εξυπηρετεί μια μοναδική σκοπιμότητα από την ασφάλιση της εφαρμογής μέχρι τον καθορισμό της διεπαφής χρήστη και των λειτουργικών παραμέτρων.
Πέρα από τους κοινούς φακέλους, τα bundles μπορεί επίσης να περιλαμβάνουν:
Frameworks: Περιέχει bundled frameworks που χρησιμοποιούνται από την εφαρμογή. Τα frameworks είναι σαν dylibs με επιπλέον πόρους.
PlugIns: Ένας φάκελος για plug-ins και επεκτάσεις που ενισχύουν τις δυνατότητες της εφαρμογής.
XPCServices: Περιέχει XPC υπηρεσίες που χρησιμοποιούνται από την εφαρμογή για επικοινωνία εκτός διαδικασίας.
Αυτή η δομή διασφαλίζει ότι όλα τα απαραίτητα στοιχεία είναι ενσωματωμένα μέσα στο bundle, διευκολύνοντας ένα αρθρωτό και ασφαλές περιβάλλον εφαρμογής.
Για περισσότερες λεπτομέρειες σχετικά με τα κλειδιά του Info.plist
και τις σημασίες τους, η τεκμηρίωση προγραμματιστών της Apple παρέχει εκτενείς πόρους: Apple Info.plist Key Reference.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)