.. | ||
i2c.md | ||
jtag.md | ||
radio.md | ||
README.md | ||
spi.md | ||
uart.md |
Hardware Hacking
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks AWS)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα τηλεγραφήματος ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του GitHub.
JTAG
Το JTAG επιτρέπει την εκτέλεση ενός σαρωτή ορίων. Ο σαρωτής ορίων αναλύει συγκεκριμένα κυκλώματα, συμπεριλαμβανομένων ενσωματωμένων κυκλωμάτων σάρωσης ορίων και καταχωρητών για κάθε ακίδα.
Το πρότυπο JTAG ορίζει συγκεκριμένες εντολές για την εκτέλεση σαρώσεων ορίων, συμπεριλαμβανομένων των ακόλουθων:
- BYPASS σάς επιτρέπει να δοκιμάσετε ένα συγκεκριμένο τσιπ χωρίς τον υπερβολικό χρόνο πέρασμα από άλλα τσιπ.
- SAMPLE/PRELOAD παίρνει ένα δείγμα των δεδομένων που εισέρχονται και εξέρχονται από τη συσκευή όταν βρίσκεται σε κανονική λειτουργία.
- EXTEST ορίζει και διαβάζει τις καταστάσεις των ακίδων.
Μπορεί επίσης να υποστηρίζει άλλες εντολές όπως:
- IDCODE για την αναγνώριση μιας συσκευής
- INTEST για το εσωτερικό τεστ της συσκευής
Μπορεί να συναντήσετε αυτές τις οδηγίες όταν χρησιμοποιείτε ένα εργαλείο όπως το JTAGulator.
Η Πρόσβαση Δοκιμής Θύρας
Οι σαρώσεις ορίων περιλαμβάνουν δοκιμές της τετρακαλωδίου Πρόσβασης Δοκιμής (TAP), μια γενική θύρα που παρέχει πρόσβαση στην υποστήριξη δοκιμής JTAG λειτουργιών που έχουν ενσωματωθεί σε ένα εξάρτημα. Το TAP χρησιμοποιεί τα ακόλουθα πέντε σήματα:
- Είσοδος ρολογιού δοκιμής (TCK) Το TCK είναι το ρολόι που ορίζει πόσο συχνά θα πάρει μια ενέργεια το ελεγκτή TAP (δηλαδή, θα μεταβεί στην επόμενη κατάσταση στη μηχανή καταστάσεων).
- Είσοδος επιλογής λειτουργίας δοκιμής (TMS) Το TMS ελέγχει τη μηχανή κατάστασης. Σε κάθε χτύπημα του ρολογιού, ο ελεγκτής TAP JTAG της συσκευής ελέγχει την τάση στην ακίδα TMS. Αν η τάση είναι κάτω από ένα συγκεκριμένο όριο, το σήμα θεωρείται χαμηλό και ερμηνεύεται ως 0, ενώ αν η τάση είναι πάνω από ένα συγκεκριμένο όριο, το σήμα θεωρείται υψηλό και ερμηνεύεται ως 1.
- Είσοδος δεδομένων δοκιμής (TDI) Το TDI είναι η ακίδα που στέλνει δεδομένα στο τσιπ μέσω των κυψελών σάρωσης. Κάθε προμηθευτής είναι υπεύθυνος για τον καθορισμό του πρωτοκόλλου επικοινωνίας μέσω αυτής της ακίδας, επειδή το JTAG δεν το καθορίζει.
- Έξοδος δεδομένων δοκιμής (TDO) Το TDO είναι η ακίδα που στέλνει δεδομένα έξω από το τσιπ.
- Επαναφορά δοκιμής (TRST) είσοδος Η προαιρετική TRST επαναφέρει τη μηχανή κατάστασης σε μια γνωστή καλή κατάσταση. Διαφορετικά, αν το TMS κρατηθεί στο 1 για πέντε συνεχόμενους κύκλους ρολογιού, επικαλείται μια επαναφορά, με τον ίδιο τρόπο που θα έκανε το TRST, γι' αυτό και το TRST είναι προαιρετικό.
Μερικές φορές μπορείτε να βρείτε αυτές τις ακίδες σημειωμένες στην PCB. Σε άλλες περιπτώσεις ενδέχεται να χρειαστεί να τις βρείτε.
Αναγνώριση ακίδων JTAG
Ο γρηγορότερος αλλά πιο ακριβός τρόπος ανίχνευσης των θυρών JTAG είναι με τη χρήση του JTAGulator, μιας συσκευής που δημιουργήθηκε ειδικά γι' αυτόν τον σκοπό (αν και μπορεί επίσης να ανιχνεύσει τις ακίδες UART).
Διαθέτει 24 κανάλια στα οποία μπορείτε να συνδέσετε τις ακίδες των πλακετών. Στη συνέχεια πραγματοποιεί μια επίθεση BF σε όλους τους πιθανούς συνδυασμούς αποστέλλοντας εντολές σάρωσης ορίων IDCODE και BYPASS. Αν λάβει απάντηση, εμφανίζει το κανάλι που αντιστοιχεί σε κάθε σήμα JTAG.
Ένας φθηνότερος αλλά πολύ πιο αργός τρόπος αναγνώρισης των ακίδων JTAG είναι με τη χρήση του JTAGenum φορτωμένο σε έναν μικροελεγκτή συμβατό με Arduino.
Χρησιμοποιώντας το JTAGenum, θα πρέπει πρώτα να ορίσετε τις ακίδες της συσκευής που θα χρησιμοποιήσετε για την απαρίθμηση. Θα πρέπει να αναφερθείτε στο διάγραμμα ακίδων της συσκευής και στη συνέχεια να συνδέσετε αυτές τις ακίδες με τα σημεία δοκιμής στη συσκευή στόχο.
Ένας τρίτος τρόπος για την αναγνώριση των ακίδων JTAG είναι με το έλεγχο της PCB για μία από τις ακίδες. Σε ορισμένες περιπτώσεις, οι PCB ενδέχεται να παρέχουν βολικά την διεπαφή Tag-Connect, η οποία είναι ένα σαφές σημάδι ότι η πλακέτα έχει έναν συνδέστη JTAG. Μπορείτε να δείτε πώς φαίνεται αυτή η διεπαφή στο https://www.tag-connect.com/info/. Επιπλέον, η επιθεώρηση των φύλλων δεδομένων των τσιπ στην PCB μπορεί να αποκαλύψει διαγράμματα ακίδων που δείχνουν σε διεπαφές JTAG.
SDW
Το SWD είναι ένα πρωτόκολλο ειδικό για την ARM σχεδιασμένο για αποσφαλμάτωση.
Η διεπαφή SWD απαιτεί δύο ακίδες: ένα διπλής κατεύθυνσης σήμα SWDIO, το οποίο είναι το ισοδύνα