Πώς να επεξεργαστείτε προστατευμένα αρχεία Mac OS X; Αλλαγή παραμέτρων παιχνιδιού χρησιμοποιώντας το παράδειγμα του Fieldrunners Mortal kombat ios με επεξεργασία αρχείων plist

Τα αρχεία PLIST είναι διάσπαρτα σε όλο το Mac σας, αλλά είναι απολύτως πιθανό να μην τα δείτε ποτέ. Αυτό είναι κακό, καθώς τα αρχεία PLIST, στην πραγματικότητα, παρέχουν έναν από τους πιο άμεσους τρόπους για το hacking. Ακολουθώντας τις οδηγίες αυτής της συνταγής, θα κατακτήσετε τη δύναμη αυτών των αρχείων.

PLISTείναι συντομογραφία του όρου "λίστα ιδιοτήτων" και η επεξεργασία αρχείων με αυτήν την επέκταση ονόματος είναι η κύρια μέθοδος τροποποίησης του Mac OS X (καθώς και ορισμένων άλλων λειτουργικών συστημάτων). Με αυτή τη μέθοδο, μπορείτε να οργανώσετε τα δεδομένα έτσι ώστε να είναι προσβάσιμα από προγράμματα, ενώ παράλληλα να είναι δομημένα έτσι ώστε οι χρήστες να μπορούν να δημιουργούν τα δικά τους αρχεία αυτού του τύπου εάν χρειάζεται. το Σύντομη περιγραφή, φυσικά, δεν λέει σχεδόν τίποτα, αλλά η λεπτομερής περιγραφή των αρχείων PLIST είναι μια πολύπλοκη και χρονοβόρα εργασία. Εάν ενδιαφέρεστε πραγματικά για τη λειτουργικότητα των αρχείων PLIST, διαβάστε προσεκτικά την ακόλουθη τεκμηρίωση: http://developer.apple.com/documentation/Darwin/Reference/Manpages/man_/plist._.html ή ξεκινήστε το πρόγραμμα Terminal και πληκτρολογήστε την ακόλουθη εντολή: man plist. Όταν προσαρμόζετε τον υπολογιστή σας για να ταιριάζει στις προσωπικές σας ανάγκες, το πιο συνηθισμένο πράγμα που πρέπει να κάνετε είναι να προσαρμόσετε αρχεία PLIST, τα οποία αποθηκεύουν προεπιλεγμένες τιμές για διάφορες ρυθμίσεις προγράμματος, από προεπιλεγμένα χρώματα έως τον τρόπο λειτουργίας των προγραμμάτων αντιδρούν σε ορισμένες ενέργειες. Συνήθως, αυτά τα αρχεία βρίσκονται στο φάκελο Library/Preferences στον αρχικό σας κατάλογο. Στις περισσότερες περιπτώσεις, η τροποποίηση αυτών των αρχείων είναι αβλαβής και με αυτόν τον τρόπο, σας επιτρέπει να ξεκλειδώσετε κάποια μάλλον απροσδόκητη λειτουργικότητα. Εάν κατά λάθος καταστρέψετε ένα αρχείο κατά την επεξεργασία, μπορείτε απλώς να το μετακινήσετε στον Κάδο απορριμμάτων και την επόμενη φορά που θα εκτελέσετε την εφαρμογή, θα δημιουργηθεί ένα νέο αρχείο για να αντικαταστήσει το διαγραμμένο αρχείο. Φυσικά, με αυτόν τον τρόπο, θα χάσετε όλες τις μεμονωμένες ρυθμίσεις που δημιουργήθηκαν για αυτό το πρόγραμμα, οπότε Ο καλύτερος τρόπος(όπως σε όλες τις περιπτώσεις εισβολής, αν είναι δυνατόν) είναι να δημιουργήσετε ένα αντίγραφο ασφαλείας αυτού του αρχείου για να το επαναφέρετε αργότερα σε περίπτωση προβλημάτων.


Υπάρχουν πολλοί τρόποι πρόσβασης στα αρχεία PLIST. Το πιο γρήγορο από αυτά προέρχεται από το πρόγραμμα Terminal χρησιμοποιώντας την προεπιλεγμένη εντολή. Ας εξετάσουμε ένα απλό παράδειγμα. Μερικά προγράμματα μπορούν να ρυθμιστούν ώστε να εμφανίζουν το μενού Debug (οι περισσότεροι χρήστες iCal γνωρίζουν πόσο χρήσιμο μπορεί να είναι αυτό το μενού). Ας δούμε πώς μπορεί να ρυθμιστεί το iCal για να προσθέσει μια εντολή εντοπισμού σφαλμάτων στη γραμμή μενού:

  1. Κλείστε την εφαρμογή iCal εάν χρειάζεται.
  2. Εκκινήστε το πρόγραμμα Terminal (Εφαρμογές/Βοηθητικά προγράμματα/Τερματικό).
  3. Όταν εμφανιστεί η προτροπή (σύμβολο $) στην οθόνη, πληκτρολογήστε την ακόλουθη εντολή: προεπιλογή γράψτε com.apple.iCal IncludeDebugMenu
  4. Επανεκκινήστε την εφαρμογή iCal.

Αφού εμφανιστεί το παράθυρο της εφαρμογής, θα δείτε ότι έχει εμφανιστεί ένα νέο μενού Debug (Εικ. 1.15).


Η εφαρμογή Terminal είναι εξαιρετική όταν γνωρίζετε τι πρέπει να αλλάξετε. Ωστόσο, αν δεν το γνωρίζετε και απλώς ψάχνετε να μάθετε ποιες ρυθμίσεις να αλλάξετε, δεν θα είναι τόσο χρήσιμο. Για το σκοπό αυτό θα χρειαστείτε έναν κατάλογο ακινήτων. Όπως αναφέρθηκε στην αρχή αυτής της ενότητας, τα περισσότερα αρχεία PLIST βρίσκονται συνήθως στο φάκελο Library στον αρχικό σας κατάλογο. Για ένα αρχείο PLIST που περιέχει προτιμήσεις iCal, η διαδρομή θα είναι ~/Library/Preferences/com.apple.ical.plist. Μόλις βρείτε το αρχείο που θέλετε, ανοίξτε το με το Property List Editor. Όπως αναφέρθηκε, αυτό το πρόγραμμα επεξεργασίας περιλαμβάνεται στο Xcode Tools και είναι εγκατεστημένο στο φάκελο /Developer/Applications. Επιπλέον, μπορείτε απλά να κάνετε διπλό κλικ στο επιθυμητό αρχείο και θα ανοίξει για επεξεργασία (Εικ. 1.16).


Μόλις ανοίξει το αρχείο, μπορείτε να επεξεργαστείτε οποιαδήποτε από τις γραμμές του. Οι περισσότερες από τις γραμμές έχουν μικρή πρακτική αξία, αλλά ορισμένες από αυτές έχουν ξεκάθαρο νόημα και σας επιτρέπουν να επεξεργαστείτε τη λειτουργικότητα της εφαρμογής. Για παράδειγμα, η αλλαγή της αριθμητικής τιμής στο delete todos after line από 30 σε 60 θα έχει ως αποτέλεσμα οι εργασίες που γίνονται δεκτές για εκτέλεση να διατηρηθούν για 60 ημέρες.

Έτσι, τώρα είστε οπλισμένοι με μια γραμμή εντολών και ένα πρόγραμμα που σας επιτρέπει να επεξεργάζεστε αρχεία PLIST, πειραματιζόμενοι με τις ρυθμίσεις τους. Επιπλέον, τα αρχεία PLIST μπορούν να επεξεργαστούν με ένα κανονικό πρόγραμμα επεξεργασίας κειμένου. Σε εκδόσεις του Mac OS X παλαιότερες από το Tiger, τα αρχεία PLIST μπορούσαν να ανοίξουν απευθείας από προγράμματα επεξεργασίας κειμένου, αλλά αυτά τα αρχεία αποθηκεύονται πλέον σε δυαδική μορφή. Για να ανοίξετε ένα αρχείο PLIST με ένα πρόγραμμα επεξεργασίας κειμένου, θα πρέπει πρώτα να το μετατρέψετε. Ποια από τις μεθόδους μετατροπής αρχείων PLIST είναι η πιο εύκολη; Η εφαρμογή Terminal θα έρθει ξανά στη διάσωση.

Το αρχείο PLIST της εφαρμογής iCal έχει ήδη μελετηθεί αρκετά καλά, οπότε τώρα ας προσπαθήσουμε να τροποποιήσουμε τους σελιδοδείκτες του προγράμματος περιήγησης Safari. Η πλήρης διαδρομή προς το αρχείο PLIST με ρυθμίσεις Safari μοιάζει με αυτό: ~/Library/Safari/Bookmarks.plist. Πρώτα απ 'όλα, ας δημιουργήσουμε ένα αντίγραφο ασφαλείας του (όπως συνιστάται να κάνετε στις περισσότερες περιπτώσεις). Για να το κάνετε αυτό, μετακινήστε τον κέρσορα του ποντικιού πάνω από το αρχείο, κάντε δεξί κλικ και επιλέξτε την εντολή Διπλότυπο από το μενού περιβάλλοντος. Τώρα μετατρέψτε αυτό το αρχείο χρησιμοποιώντας την ακόλουθη γραμμή εντολών: $ plutil -convert xml1 ~/Library/Safari/Bookmarks copy.plist

Σε αυτήν την περίπτωση, η εντολή plutil εκτελεί μια διαδικασία μετασχηματισμού λίστας ιδιοτήτων. Ο διακόπτης -convert xml1 λέει στην plutil να μετατρέψει το αρχείο PLIST σε μορφή XML και η υπόλοιπη γραμμή εντολών καθορίζει τη διαδρομή προς το αρχείο που πρόκειται να μετατραπεί. Αφού ολοκληρωθεί η εντολή, μεταβείτε στον επιθυμητό φάκελο χρησιμοποιώντας το Finder, τοποθετήστε το δείκτη του ποντικιού πάνω από το επιθυμητό αρχείο, κάντε δεξί κλικ και επιλέξτε Άνοιγμα με → Άλλο από το μενού περιβάλλοντος και, στη συνέχεια, επιλέξτε την επιλογή Επεξεργασία κειμένου. Το αρχείο PLIST που έχει μετατραπεί σε μορφή XML φαίνεται αρκετά ευανάγνωστο (Εικόνα 1.17).

Φυσικά, τα αρχεία PLIST αξίζουν πολύ πιο προσεκτική μελέτη, αλλά οι απαραίτητες ελάχιστες πληροφορίες που παρέχονται εδώ θα σας επιτρέψουν ήδη να αρχίσετε να τα εξερευνάτε και να πειραματίζεστε με ρυθμίσεις.

Πιθανώς κάθε προχωρημένος χρήστης του Mac OS X έχει συναντήσει αρχεία plist τουλάχιστον μία φορά στη ζωή του. Σήμερα θα πω στους αναγνώστες μια πολύ ενδιαφέρουσα και απλή εφαρμογή για εργασία μαζί τους που ονομάζεται PlistEdit Pro.

Για αρχή, ένα πολύ σύντομο εκπαιδευτικό πρόγραμμα. Ένα αρχείο .plist (Λίστα ιδιοτήτων) είναι ένα απλό αρχείο XML με ρυθμίσεις εφαρμογής. Αυτή η μορφή είναι καλή επειδή είναι βολική και γρήγορη στη χρήση. Πολλές ρυθμίσεις εφαρμογών σε τέτοια αρχεία βρίσκονται στο /Home/Library/Preferences και τα ονόματά τους συνήθωςαποτελείται από 4 μέρη: prefix.company.app.plist (για παράδειγμα, com.apple.iTunes.plist).

Τα περισσότερα από αυτά τα αρχεία μπορούν να ανοίξουν σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου, αλλά η τροποποίηση τους μπορεί να είναι δύσκολη. Σε αυτήν την περίπτωση, μπορεί να μας φανεί χρήσιμο το βοηθητικό πρόγραμμα PlistEdit Pro, το οποίο εμφανίζει το «ακατέργαστο» κείμενο του αρχείου ως λίστα με τρεις παραμέτρους: όνομα μεταβλητής (Κλειδί), τύπος δεδομένων (Κλάση) και τιμή (Τιμή).

Η εφαρμογή υποστηρίζει drag-n-drop, επομένως μεμονωμένες μεταβλητές ή ολόκληρες ενότητες μπορούν να συρθούν με το ποντίκι, χωρίς να χρειάζεται να ξαναγράψετε με μη αυτόματο τρόπο τα περιεχόμενα του αρχείου. Παρεμπιπτόντως, επιλέγοντας έναν από τους τύπους εμφάνισης του περιεχομένου του (δυαδικό, ASCII ή XML), μπορείτε να δείτε αυτόματα τις αλλαγές στο κάτω μέρος του παραθύρου. Και αν προσθέσετε τον κώδικα εκεί "με το χέρι", τότε συγχρονίζεται με το επάνω δέντρο XML.

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

Επίσης, το PlistEdit Pro παρέχει προηγμένη αναζήτηση με δυνατότητα αντικατάστασης των στοιχείων που βρέθηκαν. Μπορείτε να περιορίσετε και να επεκτείνετε το εύρος αναζήτησης χρησιμοποιώντας διάφορα κριτήρια.

Άλλα οφέλη αυτής της εφαρμογής περιλαμβάνουν:

  • Πλήρες ιστορικό αλλαγών.
  • Υποστήριξη για συντομεύσεις πληκτρολογίου για γρήγορη πρόσβαση σε ορισμένες λειτουργίες.
  • Ενσωμάτωση με Xcode.
  • Υποστήριξη AppleScript.

Το μόνο πράγμα που, κατά τη γνώμη μου, επισκιάζει την εντύπωση του PlistEdit Pro είναι η τιμή του στα $30.

Ιστότοπος προγραμματιστή:Λογισμικό Fat Cat
Τιμή: 29.95$

Η βάση κάθε σταθερότητας λειτουργικό σύστημα- αυτό είναι περιορισμός της πρόσβασης σε σημαντικά αρχεία, από το οποίο εξαρτάται η λειτουργία ενός υπολογιστή ή απλά «προστασία από έναν ανόητο». Στο Mac OS X, όπως και σε όλα τα άλλα συστήματα *nix, αυτή η προστασία υλοποιείται μέσω αδειών, ομάδων και κατόχων αντικειμένων. Μπορείτε να διαβάσετε για όλα αυτά στο τερματικό Mac OS X και σήμερα θα μιλήσουμε όχι τόσο για την προστασία, αλλά για τρόπους για να το ξεπεράσετε.

Γιατί χρειάζεται αυτό; Αργά ή γρήγορα, κάθε χρήστης Mac αντιμετωπίζει την ανάγκη να επεξεργαστεί κάτι στις ρυθμίσεις συστήματος ή μεμονωμένα προγράμματα. Λοιπόν, οι ιδιοκτήτες hackintosh αντιμετωπίζουν αυτήν την ανάγκη σχεδόν κάθε μέρα. Πώς να ξεπεράσετε το πονηρό σύστημα της εκχώρησης δικαιωμάτων πρόσβασης για να αλλάξετε κάτι στο σύστημα αποκλειστικά για καλό σκοπό;

Η τυπική μορφή για τις ρυθμίσεις και τα προγράμματα του Mac OS X είναι PLIST. Αυτό είναι ένα αρχείο απλού κειμένου που θα ανοίξει στο TextEdit από προεπιλογή. Τώρα φανταστείτε ότι έχετε ανοίξει ένα τέτοιο αρχείο, έχετε κάνει όλες τις απαραίτητες αλλαγές και τώρα θέλετε να το αποθηκεύσετε. Αλλά δεν ήταν εκεί! Θα δείτε αυτό το σφάλμα:

Έχετε μόνο μία επιλογή - αποθηκεύστε το αρχείο κάπου αλλού. Αλλά αυτή είναι μια πολύ, πολύ κακή επιλογή. Πρώτον, δεν θα μπορείτε να αντιγράψετε αυτό το αρχείο στον αρχικό του φάκελο αργότερα. Το σύστημα απλά δεν θα σας επιτρέψει να αντικαταστήσετε το υπάρχον αρχείο (και θα είναι σωστό). Λοιπόν, εάν διαγράψετε το παλιό αρχείο και μόνο στη συνέχεια αντιγράψετε το επεξεργασμένο αντίγραφο στον ίδιο φάκελο, θα αντιγραφεί, αλλά τα δικαιώματα πρόσβασης θα παραβιαστούν. Και αυτό σας απειλεί με τις πιο μυστηριώδεις και απρόβλεπτες δυσλειτουργίες.

Γι' αυτό θα εξετάσουμε πολλές άλλες επιλογές.

1) Επεξεργασία μέσω τερματικού

Το τερματικό δίνει στον χρήστη τη δυνατότητα να εκτελεί ενέργειες για λογαριασμό του διαχειριστή root. Και αυτό σημαίνει ότι κάθε αρχείο στον υπολογιστή θα υπόκειται σε εσάς. Ας ελπίσουμε ότι δεν έχει νόημα να σας προειδοποιήσουμε για τους κινδύνους από την κατοχή τέτοιας δύναμης ;)

Το ίδιο το Terminal έχει πολλά ενσωματωμένα εργαλεία επεξεργασίας, όπως οι εντολές νανο και vi. Η χρήση τους είναι εύκολη. Πρώτα πρέπει να αποκτήσετε δικαιώματα διαχειριστή root. Εισαγάγετε την εντολή:

Στη συνέχεια, πληκτρολογήστε τυφλά τον κωδικό πρόσβασης και πατήστε Enter.

Τώρα αρκεί να εισάγετε:

διαδρομή αρχείου νανο

Για παράδειγμα:

nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

Ή μπορείτε να πληκτρολογήσετε nano ακολουθούμενο από ένα κενό και, στη συνέχεια, να σύρετε και να αποθέσετε το επεξεργασμένο αρχείο στο παράθυρο του τερματικού. Απομένει να πατήσετε το Enter. Η εργασία με την εντολή vi πραγματοποιείται με τον ίδιο ακριβώς τρόπο.

Αλλά η επεξεργασία ενός αρχείου σε αυτήν τη λειτουργία δεν είναι ευχάριστη απόλαυση. Κρίνετε μόνοι σας: δεν αναμένεται έλεγχος του ποντικιού εδώ και ακόμη και ο κέρσορας θα πρέπει να μετακινηθεί από το πληκτρολόγιο.

Χρήσιμη συμβουλή: Για έξοδο από το nano, κλείστε το τερματικό ή πατήστε Ctrl+X στο πληκτρολόγιό σας.

2) Εκκίνηση ενός προγράμματος επεξεργασίας κειμένου με δικαιώματα διαχειριστή

Ο δεύτερος τρόπος είναι πιο κομψός. Θα σας επιτρέψει να χρησιμοποιήσετε το συνηθισμένο Προγράμματα Mac OS X για επεξεργασία κειμένου, αλλά εκτελείται ως διαχειριστής. Σε αυτήν την περίπτωση, δεν θα προκύψουν σφάλματα δικαιωμάτων πρόσβασης.

Εκκίνηση Terminal, πληκτρολογήστε sudo -sκαι κωδικό πρόσβασης. Τότε θα χρειαστεί να εισαγάγετε μια δυσκίνητη κατασκευή όπως:

/Applications/TextEdit.app/Contents/MacOS/TextEdit

Σημείωση: μέσω του τερματικού, δεν πρέπει να εκτελέσετε το ίδιο το πρόγραμμα (δηλαδή το αρχείο TextEdit.app), αλλά το δυαδικό του, κρυμμένο μέσα στο πρόγραμμα, στον υποφάκελο Περιεχόμενα/MacOS.

Μετά από αυτό, το TextEdit θα μπορεί να λειτουργεί τέλεια με οποιοδήποτε αρχείο, αλλά μόνο μέχρι να κλείσει το πρόγραμμα για πρώτη φορά.

3) Εξειδικευμένα προγράμματα τρίτων

Δεν μπορούμε παρά να προτείνουμε το πρόγραμμα επεξεργασίας κειμένου. Αυτή είναι μια προηγμένη έκδοση του TextMate που δημιουργήθηκε με γνώμονα τους προγραμματιστές, αλλά θα είναι χρήσιμη σε κάθε Mac (και ακόμη περισσότερο σε ένα hackintosh). Στην υπηρεσία σας - μορφοποίηση οπτικού κειμένου, εργασία με μια ποικιλία κωδικοποιήσεων και το πιο σημαντικό - υποστήριξη για εργασία με προστατευμένα αρχεία χωρίς πρόσθετη απάτη στο Τερματικό.

Όταν αποθηκεύετε ένα προστατευμένο αρχείο, το TextMate θα σας ζητήσει να εισαγάγετε έναν κωδικό πρόσβασης και θα αποθηκεύσει όλες τις αλλαγές χωρίς κανένα πρόβλημα.

Ωστόσο, η τιμή δεν είναι σαφώς το πλεονέκτημα του TextMate. Μετά το τέλος της δοκιμής 30 ημερών, θα ερωτηθείτε 39 ευρώ. Οι προγραμματιστές δικαιολογούνται δείχνοντας έναν τεράστιο αριθμό ενσωματωμένων μονάδων για την επεξεργασία διαφόρων σεναρίων και γλωσσών προγραμματισμού:

Γιατί όμως είναι ένας απλός χρήστης; Εάν η τιμή δεν σας τρομάζει, τότε μπορείτε να κατεβάσετε το TextMate από τον παρακάτω σύνδεσμο.

Έκανες καλή δουλειά και εδώ είναι η εφαρμογή σου στο App Store!

  • Αποθήκευση λογαριασμών χρηστών;
  • Χρησιμοποιείτε αγορές εντός εφαρμογής;
  • Δεν θέλετε να επιδείξετε την τεχνογνωσία σας;
Μια ευκαιρία να σκεφτούμε την ασφάλεια του κώδικα και των δεδομένων! Θα αναζητήσουμε τρωτά σημεία στην εφαρμογή δοκιμής. Σε αυτό το άρθρο θα μιλήσουμε για την ασφάλεια των δεδομένων και στο επόμενο θα περάσουμε στον κώδικα.

Αποποίηση ευθυνών

Στόχος αυτό το μάθημα- όχι για να σε κάνουν χάκερ, αλλά για να δείξουν πώς οι εισβολείς μπορούν να σε εξαπατήσουν γύρω από το δάχτυλό τους. Το άρθρο παρέλειψε ορισμένες πληροφορίες που απαιτούνται για να χακάρετε μια πραγματική εφαρμογή σε μια συσκευή. Θα βασανίσουμε τον προσομοιωτή (παρεμπιπτόντως, φαίνεται να είναι ακόμη και νόμιμο ).

Αποποίηση ευθύνης από τον μεταφραστή: πολλά «νερά» και αναφορές στο Χόλιγουντ έχουν αφαιρεθεί από το αρχικό κείμενο (και τόσο μεγάλο). Προστέθηκαν ορισμένες βασικές διευκρινίσεις.

Έτσι

Καμία εφαρμογή δεν είναι ασφαλής!Αν κάποιος θέλει πραγματικά να βρει τρωτά σημεία σε εσάς, θα τα βρει. Δεν υπάρχει εγγυημένος τρόπος αποτροπής μιας επίθεσης. Εκτός εάν, μην απελευθερώσετε την εφαρμογή. Υπάρχουν όμως εξαιρετικοί τρόποι για να αποτρέψετε τους διαρρήκτες. (Σύμφωνα με τον συγγραφέα, θα βαρεθούν και θα κοιμηθούν αναζητώντας ευκολότερη λεία, ναι. - Σημείωση. ανά.)

Ας αρχίσουμε

Θα χρειαστούμε:
1. βοηθητικό πρόγραμμα class-dump-z.
2. Proxy για εντοπισμό σφαλμάτων μέσω του δικτύου, για παράδειγμα, Charles (η δοκιμαστική έκδοση έχει ενοχλητικά μηνύματα και λειτουργεί για 30 λεπτά το πολύ σε 1 περίοδο λειτουργίας). Στα σχόλια στην πηγή του άρθρου, συνιστάται μια εναλλακτική λύση στον Charles - Burpsuite.

Για να είστε δημιουργικοί στη διαδικασία, σας προσφέρω ένα σενάριο. Φανταστείτε: υπάρχει μια νέα εφαρμογή για το iPad - "Meme Collector" (Meme Collector). Σε όλους αρέσει. Αλλά σας έχουν ψιθυρίσει στο αυτί ότι οι αγορές εντός εφαρμογής θα σας εξαντλήσουν ένα σημαντικό χρηματικό ποσό.

Σε γενικές γραμμές, αποφασίσατε να λαμβάνετε περιεχόμενο επί πληρωμή (memes) δωρεάν. Υπάρχουν πολλές κατευθύνσεις όπου μπορείτε να μετακινηθείτε, θα μιλήσουμε για αυτές - και για τις αντίστοιχες μεθόδους προστασίας.

Λίγη απλοποίηση

Λόγω της διάρκειας αυτού του σεμιναρίου, αρχικά κάναμε κάποιες απλοποιήσεις στο δοκιμαστικό έργο. Για παράδειγμα, η "αγορά" νομίσματος παιχνιδιού δεν είναι μια πραγματική αγορά εντός εφαρμογής, αλλά ένα ψεύτικο αίτημα στο StoreKit (όλα συμβαίνουν τοπικά στη συσκευή).

Τι είναι τι? "Χάρτης" της εφαρμογής (χαρτογράφηση εφαρμογής)

Ας ρίξουμε μια πανοραμική άποψη της εφαρμογής! Τι κάνει, από τη σκοπιά του χρήστη; Ποια είναι η κύρια δομή του;

Ένα σωρό κλειδιά «ανεβάζουν τα στοιχήματα» για έναν χάκερ. Οι επιτιθέμενοι δεν θα μπορούν να κλέψουν τίποτα εάν η συσκευή είναι κλειδωμένη.

Ωστόσο, μην βασίζεστε αποκλειστικά στην Access Keychain μόνο! Και για αυτο. Η Access Keychain υποστηρίζεται από την Apple. (Λοιπόν, τα έχετε ήδη καταλάβει όλα, σωστά;) Οι πληροφορίες σε αυτό είναι κρυπτογραφημένες με τον κωδικό πρόσβασης του χρήστη, ο οποίος είναι συνήθως ένας απλός 4ψήφιος αριθμητικός κωδικός. Αυτό σημαίνει ότι μια επίθεση ωμής βίας θα διαρκέσει περίπου είκοσι λεπτά. Έχοντας μάθει τον κωδικό πρόσβασης, είναι εύκολο να απορρίψετε ολόκληρη τη δέσμη των κλειδιών.

  • Κρυπτογραφήστε τα δεδομένα σας!Το μπρελόκ φαίνεται να είναι ασφαλές, αλλά είναι στόχος προτεραιότητας για τους χάκερ, επομένως είναι σπασμένο στην πρώτη θέση. (Δεν υπάρχει τίποτα να πούμε για συσκευές με jailbroken - υπάρχουν βοηθητικά προγράμματα για αυτές που δείχνουν τα περιεχόμενα του Keychain.) Κάντε τη ζωή των χάκερ τουλάχιστον λίγο δύσκολη: κρυπτογράφηση δεδομένων με CommonCrypto API, το οποίο αποτελεί μέρος του τυπικού Πλαισίου Ασφαλείας (παράδειγμα).
  • Μην γράφετε το κλειδί κρυπτογράφησης στην εφαρμογή.Μια μεγάλη συμβολοσειρά στην ενότητα δεδομένων είναι πιθανό να ενδιαφέρει έναν χάκερ. Και γενικά: εάν το ιδιωτικό κλειδί είναι καταχωρημένο στην εφαρμογή, ένας εισβολέας μπορεί να το βάλει στο δίκτυο, θέτοντας σε κίνδυνο τα δεδομένα όλων των χρηστών της εφαρμογής! Φροντίστε να δημιουργήσετε ένα μοναδικό κλειδί κρυπτογράφησης σε κάθε συσκευή.
  • Ελέγξτε τον κωδικό!Συγκεκριμένα, προσέξτε την ικανότητα ενός χάκερ να χρησιμοποιήσει τον κώδικά σας για δικούς του σκοπούς. Η μέθοδος κρυπτογράφησης/αποκρυπτογράφησης μπορεί να είναι η καλύτερη λύση. Αλλά οι χάκερ θα πάρουν το πρόγραμμα εντοπισμού σφαλμάτων και θα εφαρμόσουν τη μέθοδο αποκρυπτογράφησης στα κρυπτογραφημένα δεδομένα σας. Θα το δείτε στο δεύτερο μέρος αυτού του σεμιναρίου (επόμενη ανάρτηση).
  • Χρειάζεται πραγματικά να αποθηκευτεί;Εφόσον ένας εισβολέας μπορεί να αναζητήσει, να τροποποιήσει και να εκτελέσει τα δυαδικά αρχεία σας - αναρωτηθείτε: χρειάζεται πραγματικά να αποθηκευτούν αυτές οι πληροφορίες στη συσκευή;

Δίκτυο: δοκιμή διείσδυσης

Στους χάκερ αρέσει επίσης να παρακολουθούν πώς μια εφαρμογή αλληλεπιδρά με το δίκτυο. Ο πιο ανόητος τρόπος για να δείτε αν συμβαίνει κάποια δικτύωση σε μια συσκευή είναι να αναζητήσετε διευθύνσεις URL σε ένα δυαδικό αρχείο.

Στο φάκελο του πακέτου (Meme Collector.app), πληκτρολογήστε στο τερματικό:

Χορδές "Meme Collector"
Περίμενε, τόσα πολλά! Η εντολή strings διασχίζει τις ενότητες του δυαδικού αρχείου και εξάγει όλα τα στοιχεία δεδομένων που μοιάζουν με συμβολοσειρά. Ας φιλτράρουμε τον θόρυβο:

Χορδές "Συλλεκτής Meme" | grep http
Λοιπόν, εδώ είναι μια γραμμή:

http://version1.api.memegenerator.net/Generator_Select_ByUrlNameOrGeneratorID
Φαίνεται ότι κάποια στιγμή η εφαρμογή αποκτά πρόσβαση στη δημιουργία μιμιδίων χρησιμοποιώντας αυτό το url. Ως χάκερ, θα θέλατε να διερευνήσετε περαιτέρω αυτό το θέμα εξετάζοντας την κίνηση δικτύου της εφαρμογής. Για να γίνει αυτό, χρειαζόμαστε μια οθόνη παρακολούθησης δικτύου που παρεμποδίζει όλα τα εισερχόμενα και εξερχόμενα αιτήματα.

Ο Κάρολος αναφέρθηκε στην αρχή του άρθρου - μια καλή επιλογήγια τέτοιες έρευνες. Κατεβάστε το αν δεν το έχετε κάνει ήδη. Εγκαταστήστε και εκτελέστε.

Βεβαιωθείτε ότι ο Charles εντοπίζει την αλληλεπίδραση δικτύου από τον προσομοιωτή iOS (εκκινώντας τους Χάρτες ή στο Safari πληκτρολογώντας τη διεύθυνση URL). Θα δείτε πώς εκτελούνται τα αιτήματα δικτύου στον Charles. Εάν δεν το κάνει, βεβαιωθείτε ότι το μενού Proxy > Mac OS X Proxyτο πλαίσιο ελέγχου είναι επιλεγμένο.

Παρεμπιπτόντως, ο Charles είναι εξαιρετικός στην παρεμπόδιση της κυκλοφορίας SSL.

Δεν θα το κάνουμε αυτό επειδή δεν είδαμε τις διευθύνσεις URL HTTPS στην έξοδο της εντολής strings. Αλλά αυτό το βήμα θα απαιτηθεί για άλλες εφαρμογές που μπορούν να χρησιμοποιούν HTTPS. Στο μενού Διακομιστής μεσολάβησης > Ρυθμίσεις διακομιστή μεσολάβησης… > SSLπρέπει να ενεργοποιήσετε τον διακομιστή μεσολάβησης SSL και να προσθέσετε τομείς για τους οποίους θέλετε να υποκλέψετε (και να αποκρυπτογραφήσετε) την κυκλοφορία HTTPS. Μέχρι να το κάνετε αυτό, το SSL θα μοιάζει κάπως έτσι:


Με τον Charles να τρέχει, επανεκκινήστε το Meme Collector. Κατά την εκκίνηση, θα πρέπει να δείτε τρία αιτήματα προς το version1.api.memegenerator.net κάνοντας κλικ στο τρίγωνο στα αριστερά του url (δείτε παρακάτω). Θα ανοίξουν τρία αιτήματα, τα οποία διαφέρουν ως προς τις παραμέτρους GET. Για παράδειγμα, το πρώτο έχει μία παράμετρο GET: urlName=Foul-Bachelor-Frog - αυτό φαίνεται στην καρτέλα Αίτημα.

Επιλέξτε την καρτέλα Απάντηση και, στη συνέχεια, JSON στο κάτω μέρος. Η απόκριση διακομιστή, αποκωδικοποιημένη από JSON, παρουσιάζεται με τη μορφή ενός όμορφου πίνακα:

Βλέπουμε εδώ πολλές γραμμές κλειδιού-τιμής: τίτλος (displayName), περιγραφή (περιγραφή), διεύθυνση URL εικόνας (imageUrl) - γενικά, ορισμένες πληροφορίες σχετικά με αυτόν τον τύπο μιμιδίων Four Bachelor Frog από την παράμετρο GET.

Μοιάζει με αυτό που είδαμε στην εφαρμογή, σωστά; Οι άλλες δύο εικόνες ήταν λιγότερο τυχερές αυτή τη φορά, δεν περίμεναν ποτέ απάντηση από τον διακομιστή (ο Charles το αναφέρει στην καρτέλα Επισκόπηση) και επομένως δεν εμφανίστηκαν στην εφαρμογή.

Και δεν βλέπω να ζητούνται καθόλου φωτογραφίες!

Κατά την επανεκκίνηση, οι φωτογραφίες μπορούν να ληφθούν από την κρυφή μνήμη του προσομοιωτή, ο Charles δεν το γνωρίζει αυτό. Εκκαθαρίστε την προσωρινή μνήμη και επανεκκινήστε την εφαρμογή.

Rm -R Library/Caches/

Έτσι, με έναν ορισμένο βαθμό πιθανότητας, καταλήγουμε στο συμπέρασμα: η εφαρμογή παίρνει μιμίδια από αυτό το API και τα παρουσιάζει ως περιεχόμενο επί πληρωμή. Τι γίνεται όμως αν προσπαθήσετε να αλλάξετε τη διεύθυνση URL για να αποκτήσετε κάποιο νέο περιεχόμενο εκτός από αυτά τα τρία μιμίδια; Δεν φαίνεται ότι υπάρχει έλεγχος για να δούμε αν η εφαρμογή λαμβάνει πραγματικά αυτό που περίμενε ο προγραμματιστής από τον διακομιστή!

Έχετε βαρεθεί αυτά τα τρία μιμίδια; Ας δούμε αν είναι δυνατόν να εμφανιστεί και να "αγοραστεί" κάτι νέο, πείτε "Success Kid".

Επιλέξτε Charles από το μενού: Εργαλεία > Επανεγγραφή. Αυτή η λειτουργία σάς επιτρέπει να παρακολουθείτε εισερχόμενα/εξερχόμενα αιτήματα και να τα τροποποιείτε σύμφωνα με τους κανόνες που έχετε ορίσει. Ενεργοποιήστε το πλαίσιο ελέγχου Ενεργοποιήστε το Rewrite. Οι κανόνες ομαδοποιούνται σε "σύνολα" (Σετ). Κάτω από τη λίστα Σύνολα, κάντε κλικ Προσθήκηγια να προσθέσετε ένα νέο σύνολο κανόνων. Προαιρετικά, μετονομάστε (Όνομα). Έχουμε δημιουργήσει ένα σύνολο κανόνων, αλλά είναι ακόμα κενό. Ας προσθέσουμε έναν κανόνα - στην ενότητα κανόνεςυπάρχει ένα κουμπί Προσθήκη, πατήστε το.

Ανοίγει το παράθυρο Rewrite Rule. Αλλαγή τύποςστο "Τροποποίηση παραμέτρου ερωτήματος" και συμπληρώστε τα δύο πεδία:

  • Ταίριασμα > Όνομα: urlName
  • Αντικατάσταση > Τιμή:πετυχημένο παιδί

Κάντε κλικ στο ΟΚ, ΟΚ. Επανεκκινήστε την εφαρμογή... Επιτυχία! Ενδέχεται να αγοράσουμε περιεχόμενο που δεν ήταν προηγουμένως διαθέσιμο.

Ενδιαφέρον: Υπάρχει μια συγκεκριμένη τιμή για αυτό το νέο meme. Οπου? Η εφαρμογή έπρεπε να καθορίσει με κάποιο τρόπο το κόστος με βάση την απόκριση JSON.

Ανοίξτε την καρτέλα Απόκριση και δείτε το JSON που επιστράφηκε από τον διακομιστή. Τι μπορεί να καθορίσει την αξία μιας τιμής;

Προσπαθήστε να βρείτε κλειδιά JSON που μπορούν να καθορίσουν το κόστος του μιμιδίου στην εφαρμογή. Ίσως είναι το generatorID, το totalVotesScore, το instancesCount, το templatesCount ή η κατάταξη. Ως άσκηση για εσάς: βρείτε το κλειδί που επηρεάζει την αξία του μιμιδίου.

Για να το κάνετε αυτό, μεταβείτε στο διακομιστή μεσολάβησης > Σημεία διακοπής. Κάντε κλικ Ενεργοποίηση Σημείων Διακοπήςκαι πατήστε Προσθήκηγια να προσθέσετε ένα νέο σημείο διακοπής. Θα εμφανιστεί το παράθυρο Επεξεργασία σημείου διακοπής, εισαγάγετε τα ακόλουθα δεδομένα σε αυτό:

  • πρωτόκολλο: http
  • Κεντρικός υπολογιστής: version1.api.memegenerator.net
  • Η επιλογή απόκρισης ενεργοποιήθηκε

Τώρα επανεκκινήστε την εφαρμογή. Μόλις λάβουμε απάντηση από τον διακομιστή, θα ενεργοποιηθεί ένα σημείο διακοπής. Όταν γίνει, κάντε κλικ στην καρτέλα Επεξεργασία απόκρισης, επιλέξτε JSON στο κάτω μέρος:

Εδώ μπορείτε να τροποποιήσετε μη αυτόματα την απάντηση JSON που θα μεταβεί στην εφαρμογή. Παίξτε με αυτές τις επιλογές και προσπαθήστε να προσδιορίσετε ποια κλειδιά επηρεάζουν την τιμή που εμφανίζεται στην εφαρμογή. Αφού τροποποιήσετε την απάντηση JSON, κάντε κλικ στην επιλογή Εκτέλεση για να υποβάλετε την απάντηση. Η εφαρμογή κάνει τρία αιτήματα στο API, επομένως θα χρειαστεί να πατήσετε το Execute τρεις φορές.

Σημαντικό: ενεργήστε γρήγορα! Το AFNetworking έχει χρονικό όριο 30 δευτερολέπτων. Εάν υποκλέψατε την απάντηση αλλά δεν είχατε χρόνο να κάνετε αλλαγές, το AFNetworking θα επιστρέψει ένα σφάλμα χρονικού ορίου λήξης αιτήματος και θα εκτελέσει τον κατάλληλο χειριστή στον κώδικα (που σε αυτήν την περίπτωση δεν κάνει τίποτα). Εάν εξαντληθεί ο χρόνος, επανεκκινήστε την εφαρμογή και δοκιμάστε ξανά.

Τι έπεται?

Ανακαλύψατε τις ικανότητές σας στο hacking και πραγματοποιήσατε τις απλούστερες δοκιμές διείσδυσης στο παράδειγμα του συστήματος αρχείων και της δικτύωσης μιας συγκεκριμένης εφαρμογής. Έχετε κερδίσει απλές λίστες και μπορείτε ακόμη και να τροποποιήσετε τις απαντήσεις του διακομιστή.

Ίσως αυτή η γνώση να αυξήσει λίγο την ασφάλεια της εφαρμογής iOS σας. Στο επόμενο μέρος, θα εμβαθύνουμε πολύ περισσότερο στα έγκατα της εφαρμογής, θα αλλάξουμε τη λειτουργικότητά της! Στο μεταξύ, ενώ περιμένετε να δημοσιεύσω τη μετάφραση (μέχρι την επόμενη Παρασκευή), υπάρχουν πολλά πράγματα που μπορείτε να δοκιμάσετε σχετικά με το θέμα της αποθήκευσης δεδομένων στην εφαρμογή:

Σχόλια σχετικά με τη μετάφραση ή μη λειτουργικά παραδείγματα μπορούν να σταλούν στο ταχυδρομείο [email protected].

Θέλω να επεξεργαστώ το Info.plist για το TextEdit. (Να γιατί.) Χρησιμοποιώ το OS 10.7 και έχω εγκαταστήσει το Xcode. Αλλά κάθε φορά που προσπαθώ να επεξεργαστώ το αρχείο μπλοκάρεται και δεν μπορώ να αποθηκεύσω τις αλλαγές μου.

Αν προσπαθήσω να το αποθηκεύσω χρησιμοποιώντας XCode, το XCode ρωτά αν θέλω να το ξεκλειδώσω. Λέω "Ξεκλείδωμα", αλλά μετά εμφανίζεται το μήνυμα σφάλματος Το αρχείο "Info.plist" δεν μπορούσε να ξεκλειδωθεί." Λέει ότι δεν το κατέχω.

Αν ανοίξω το Info.plist με vi στο Terminal (vi Info.plist), δεν μπορώ να αποθηκεύσω τις αλλαγές, ακόμη και χρησιμοποιώντας το :w! , Σφάλμα E212: Δεν είναι δυνατό το άνοιγμα του αρχείου για εγγραφή.

Πώς μπορώ να κάνω αλλαγές στο Info.plist ενός αρχείου TextEdit;

Απαντήσεις

Γιαν Σ.

Πριν το κάνετε αυτό, βεβαιωθείτε ότι δεν υπάρχουν περιπτώσεις TextEdit που εκτελούνται στο σύστημά σας.

Χρησιμοποιώντας το Finder

Επιλέξτε το αρχείο plist στο Finder και κάντε File > Get Info. Στο κάτω μέρος του παραθύρου πληροφοριών αρχείου, θα δείτε μια ενότητα " Κοινή χρήση και δικαιώματα ». Θέλετε να βεβαιωθείτε ότι βρίσκεστε σε αυτήν τη λίστα και ότι έχετε πρόσβαση Read & Write στο αρχείο.

Για να μπορέσετε να προσθέσετε τον εαυτό σας στα δικαιώματα ενός αρχείου, θα πρέπει να το ξεκλειδώσετε. Κάντε κλικ στο εικονίδιο με το μικρό λουκέτο (1) στην κάτω δεξιά γωνία και πληκτρολογήστε τον κωδικό πρόσβασής σας. Εάν δεν είστε διαχειριστής αυτού του υπολογιστή, δεν θα μπορείτε να ολοκληρώσετε αυτό το βήμα.

Μόλις ξεκλειδωθεί το αρχείο, μπορείτε να αλλάξετε τα δικαιώματα σε Ανάγνωση και εγγραφή . Εάν δεν εμφανίζεται στη λίστα των ατόμων που έχουν πρόσβαση στο αρχείο, κάντε κλικ στο κουμπί + κάτω από τη λίστα και αναζητήστε την αναδυόμενη λίστα Χρήστες & Ομάδες.

Οι αλλαγές εφαρμόζονται στο αρχείο αμέσως μόλις τις πραγματοποιήσετε στο παράθυρο Πληροφορίες αρχείου.

Θα πρέπει τώρα να μπορείτε να ανοίξετε, να επεξεργαστείτε και να αποθηκεύσετε αυτές τις αλλαγές σε ένα αρχείο.

Χρησιμοποιώντας τη γραμμή εντολών

Ανοίξτε ένα παράθυρο τερματικού.

Μεταβείτε στη θέση όπου βρίσκεται το αρχείο plist:

cd ~/Βιβλιοθήκη/Προτιμήσεις/

Αλλάξτε τον κάτοχο και τα δικαιώματα του αρχείου για να μπορείτε να το διαβάσετε και να το γράψετε:

sudo chown $USER aomDSP.plist sudo chmod u+w aomDSP.plist

Μάλλον δεν χρειάζεστε sudo κατά τη δεύτερη κλήση, αλλά δεν μπορεί να βλάψει. Για να το κάνετε αυτό, θα χρειαστείτε πρόσβαση διαχειριστή στο μηχάνημα.

KatieK

Η οδηγία "Finder" λειτούργησε για μένα - ευχαριστώ!

χρήστης495470

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

jzadra

Οι οδηγίες αναζήτησης δεν λειτούργησαν για μένα - όταν πήγα να προσθέσω έναν χρήστη ή να επεξεργαστώ δικαιώματα για όλους, έλεγε "Η λειτουργία δεν μπορεί να ολοκληρωθεί επειδή δεν έχετε τα απαιτούμενα δικαιώματα". Ο λογαριασμός διαχειριστή μου. Η γραμμή εντολών αναφέρει επίσης ότι η λειτουργία δεν επιτρέπεται.

Jan S. ♦

@jzadra αν είναι γκριζαρισμένο, υποθέτει ότι ο λογαριασμός με τον οποίο προσπαθείτε να το κάνετε είναι δενέχει δικαιώματα διαχειριστή.

Πριν

Εάν θέλετε να επεξεργαστείτε ένα αρχείο (όπως περιγράψατε παραπάνω), δεν χρειάζεται να το ξεκλειδώσετε. Εάν είστε καλοί με τη γραμμή εντολών, μπορείτε να επεξεργαστείτε το αρχείο χρησιμοποιώντας τα εργαλεία γραμμής εντολών που παρέχονται από την Apple. Προσθέστε εντολές με το sudo για να λάβετε τα απαραίτητα δικαιώματα για την τροποποίηση του αρχείου (θα χρειαστεί να εισαγάγετε τον κωδικό πρόσβασης διαχειριστή).

Δηλαδή, αυτές είναι οι προεπιλογές και τα προγράμματα PlistBuddy (εκτελούνται ως sudo /usr/libexec/PlistBuddy). Ενώ οι προεπιλογές είναι ένας πιο άμεσος τρόπος για να τροποποιήσετε ένα αρχείο, το PlistBuddy διαθέτει μια διαδραστική λειτουργία που σας επιτρέπει να κάνετε προεπισκόπηση των αλλαγών πριν από την αποθήκευση.