Οι μηχανικοί χρειάζεται μερικές φορές να σκεφτούν αντίστροφα για να αναλύσουν ένα προϊόν. Για παράδειγμα, ένας μηχανολόγος μηχανικός μπορεί να βγάλει συμπεράσματα σχετικά με την παραγωγή ενός προϊόντος με βάση το σχεδιασμό και τις φυσικές του ιδιότητες. Ενδέχεται ακόμη και να είναι σε θέση να παράγουν το ίδιο προϊόν εάν το κατανοούν πλήρως.
Μπορείτε επίσης να παρομοιάσετε την αντίστροφη μηχανική με τις αποδείξεις των μαθηματικών εξισώσεων. Λοιπόν, πώς χρησιμοποιείται η αντίστροφη μηχανική;
Τι είναι η Αντίστροφη Μηχανική;
Η αντίστροφη μηχανική είναι η διαδικασία ανάλυσης ενός συστήματος με σκοπό την αναπαραγωγή ή τη βελτίωσή του. Αν κοιτάξετε τις περιοχές εργασίας της αντίστροφης μηχανικής, μπορείτε να δείτε ότι μπορείτε να τη χρησιμοποιήσετε για πολλούς διαφορετικούς σκοπούς. Εάν το κοιτάξετε από την οπτική της κυβερνοασφάλειας, μπορείτε να εκτελέσετε τις ακόλουθες λειτουργίες με μεθόδους αντίστροφης μηχανικής:
- Ανάλυση πηγών λογισμικού μη ανοιχτού κώδικα
- Ανάλυση τρωτότητας
- Ανάλυση κακόβουλου λογισμικού
- Σπάσιμο και μπάλωμα
Μπορείτε να δείτε την αντίστροφη μηχανική που χρησιμοποιείται ακόμη και σε παιχνίδια υπολογιστών στις μέρες μας. Για παράδειγμα, οι προγραμματιστές δημιουργούν συχνά τροποποιήσεις λογισμικού χρησιμοποιώντας μεθόδους αντίστροφης μηχανικής.
Στον τομέα της αντίστροφης μηχανικής, υπάρχουν δύο διαφορετικές μέθοδοι ανάλυσης: η στατική και η δυναμική. Εκτελείτε στατική ανάλυση όταν αναλύετε ένα πρόγραμμα χωρίς να το εκτελείτε πραγματικά. Μια μέθοδος δυναμικής ανάλυσης, από την άλλη πλευρά, απαιτεί να εκτελέσετε το πρόγραμμα για να παρατηρήσετε τη συμπεριφορά του και τα δεδομένα που χρησιμοποιεί.
Αλλά προτού πραγματοποιήσετε ανάλυση για την αντίστροφη μηχανική, υπάρχουν ορισμένοι σημαντικοί όροι που πρέπει να γνωρίζετε πώς λειτουργεί η αρχιτεκτονική του υπολογιστή.
Κύρια μέρη της Αρχιτεκτονικής Υπολογιστών
Η αντίστροφη μηχανική είναι πρακτικά αδύνατη αν δεν κατανοήσετε την αρχιτεκτονική του υπολογιστή. Πρέπει να μελετήσετε τα τέσσερα κύρια μέρη:
- Εισαγωγή: Ένα σύνολο μεθόδων για την εισαγωγή δεδομένων.
- ΕΠΕΞΕΡΓΑΣΤΗΣ: Η CPU επεξεργάζεται τα εισερχόμενα δεδομένα και τα μεταδίδει στους κατόχους της. Είναι η κεντρική μονάδα επεξεργασίας.
- Μνήμη: Ο χώρος που αποθηκεύει προσωρινά δεδομένα κατά την επεξεργασία.
- Παραγωγή: Το αποτέλεσμα που βλέπει ο τελικός χρήστης.
Μπορείτε να έχετε υπόψη σας όλα αυτά τα κύρια ζητήματα με ένα παράδειγμα, όπως όταν πατάτε το γράμμα A στο πληκτρολόγιό σας. Όταν το πατήσετε, εμφανίζεται ένα συμβάν εισαγωγής. Μετά από αυτό το στάδιο, η CPU επεξεργάζεται τα δεδομένα και χρησιμοποιεί ένα μικρό χώρο στη μνήμη για να τα αποθηκεύσει. Τέλος, θα δείτε το γράμμα Α στην οθόνη σας, τελειώνοντας τη διαδικασία με έξοδο.
Βουτήξτε στα βάθη της CPU
Εάν θέλετε πραγματικά να γίνετε ειδικός στην αντίστροφη μηχανική και να βουτήξετε βαθιά σε αυτό το θέμα, πρέπει να έχετε λεπτομερή γνώση του υλικού, των γλωσσών χαμηλού επιπέδου και ειδικά της CPU. Τα βασικά θέματα που θα πρέπει να γνωρίζετε για την CPU είναι:
- Μονάδα ελέγχου: Είναι υπεύθυνο για την επεξεργασία των δεδομένων στη CPU και τη μεταφορά τους στα σχετικά πεδία. Μπορείτε να σκεφτείτε αυτή τη μονάδα ως μηχανισμό ελέγχου δρομολόγησης.
- ALU: Αυτό σημαίνει Αριθμητική Λογική Μονάδα. Εδώ γίνονται κάποιες αριθμητικές και λογικές πράξεις. Αν ψάξετε βαθύτερα στα μαθηματικά, θα δείτε ότι οι τέσσερις βασικές πράξεις είναι ουσιαστικά παραλλαγές της πρόσθεσης. Έτσι η ALU βασίζεται στη συγκέντρωση. Για παράδειγμα, η αφαίρεση δύο από τα τρία είναι ίδια με την προσθήκη μείον δύο στα τρία.
- Μητρώα: Αυτές είναι οι περιοχές μέσα στην CPU που περιέχουν τα επεξεργασμένα δεδομένα. Υπάρχουν διαφορετικοί τύποι καταχωρητών, όπως ακριβώς υπάρχουν διαφορετικοί τύποι μεταβλητών σε μια γλώσσα προγραμματισμού. Ένα μητρώο είναι υπεύθυνο για τη διατήρηση του τύπου και των χαρακτηριστικών των δεδομένων που του έχουν εκχωρηθεί.
- σήματα: Εάν θέλετε η CPU να εκτελεί πολλές διαφορετικές λειτουργίες ταυτόχρονα, είναι απαραίτητη κάποια μέθοδος οργάνωσής τους. Τα στοιχεία που το κάνουν αυτό ονομάζονται σήματα. Κάθε συναλλαγή ενεργεί σύμφωνα με σήματα που διασφαλίζουν ότι δεν παρεμβαίνει σε άλλη διαδικασία.
- Λεωφορείο: Η διαδρομή που χρησιμοποιείται από τα δεδομένα για τη μετάβαση από τη μια μονάδα στην άλλη. Σημειώστε πώς υποδηλώνει το όνομα μεταφορά.
Έννοιες που θα ακούτε συχνά στην Αντίστροφη Μηχανική
Η κατανόηση του τρόπου με τον οποίο η CPU επεξεργάζεται τα δεδομένα και τα αποθηκεύει στη μνήμη, παράλληλα με την έννοια των καταχωρητών, μπορεί να είναι πολύ χρήσιμη κατά την αντίστροφη μηχανική. Συγκεκριμένα, μπορείτε να χρησιμοποιήσετε το παρακάτω διάγραμμα για να κατανοήσετε καλύτερα την έννοια της μνήμης:
Τέλος, για ανάλυση αντίστροφης μηχανικής, πρέπει να γνωρίζετε μερικές βασικές έννοιες σχετικά με τους καταχωρητές. Είναι ένα από τα θέματα στα οποία θα εστιάσετε περισσότερο. Ακολουθούν ορισμένες επεξηγήσεις σχετικά με τα δεδομένα, τους δείκτες και τους καταχωρητές ευρετηρίου που θα σας φανούν χρήσιμες με τον πιο συνοπτικό τρόπο:
- 1. ΕΑΧ: Σημαίνει εγγραφή συσσωρευτή. Συνήθως αποθηκεύει δεδομένα που εμπίπτουν στην κατηγορία των αριθμητικών πράξεων εδώ.
- 2. EBX: σημαίνει Base Register. Παίζει ρόλο στην έμμεση αντιμετώπιση.
- 3. ΕΔΧ: σημαίνει Μητρώο δεδομένων. Το EDX βοηθά άλλους καταχωρητές.
- 4. EIP: σημαίνει Instruction Pointer. Διατηρεί τη διεύθυνση του τομέα προς εκτέλεση.
- 5. ESP: Κρατάει τη διεύθυνση βάσης.
- 6. ESI: Διατηρεί τις πληροφορίες ευρετηρίου πηγής.
- 7. EDI: Διατηρεί τις πληροφορίες ευρετηρίου προορισμού.
Θα πρέπει να ερευνήσετε όλα αυτά ξεχωριστά για να κατανοήσετε τις αποχρώσεις τους. Αλλά αν κοιτάξετε τα βασικά και προσπαθήσετε να κατανοήσετε την επιχειρηματική λογική, ανεξάρτητα από την αρχιτεκτονική επεξεργαστή με την οποία εργάζεστε, η ανάλυση κώδικα για την αντίστροφη μηχανική θα είναι αρκετά εύκολη.
Η αντίστροφη μηχανική ξεκινά συχνά με τον κώδικα μηχανής. Μπορεί να κατανοήσετε πολλούς από τους παραπάνω όρους, εάν είστε εξοικειωμένοι με τη συναρμολόγηση ή έχετε γνώση Αρχιτεκτονικές επεξεργαστών 32-bit ή 64-bit. Εάν θέλετε να μάθετε τη συναρμολόγηση από την αρχή, θα είναι εξαιρετικά χρήσιμο στην αντίστροφη μηχανική.
Τι θα κάνετε με όλα αυτά;
Εάν έχετε καλή γνώση της αντίστροφης μηχανικής, μπορείτε να κάνετε ανάλυση κώδικα ανεξάρτητα από το λειτουργικό σύστημα ή την αρχιτεκτονική του επεξεργαστή με το οποίο εργάζεστε. Για παράδειγμα, είναι δυνατό να βρείτε σπασμένες εκδόσεις πολλών προγραμμάτων ή παιχνιδιών υπολογιστή. Αυτή είναι μια εντελώς παράνομη μέθοδος.
Ωστόσο, εάν πρόκειται να γίνετε επαγγελματίας ηθικής ασφάλειας στον κυβερνοχώρο, θα χρειαστεί να χρησιμοποιήσετε αντίστροφους μηχανικούς για να καταλάβετε γιατί παραβιάζονται αυτά τα σπασμένα προγράμματα. Εάν θέλετε να προχωρήσετε στην αντίστροφη μηχανική ή μόλις ξεκινάτε, θα ήταν μια καλή επιλογή αν προσπαθήσετε να μάθετε για τη σχέση μεταξύ υλικού και κώδικα μηχανής.