REC Studio 4 - Αντίστροφη μηχανική Μεταγλωττιστής

Original Source: http://www.backerstreet.com/rec/rec.htm
Το REC Studio είναι ένας διαδραστικός απομεταγλωττιστής.

Διαβάζει ένα Windows, Linux, Mac OS X ή ακατέργαστο εκτελέσιμο αρχείο και επιχειρεί να δημιουργήσει μια αναπαράσταση τύπου C του κώδικα και των δεδομένων που χρησιμοποιούνται για τη δημιουργία του εκτελέσιμου αρχείου.
Έχει σχεδιαστεί για να διαβάζει αρχεία που παράγονται για πολλούς διαφορετικούς στόχους και έχει μεταγλωττιστεί σε πολλά συστήματα υποδοχής.

Το REC Studio 4 είναι μια πλήρης επανεγγραφή του αρχικού απομεταγλωττιστή REC. Χρησιμοποιεί πιο ισχυρές τεχνικές ανάλυσης όπως π.χ μερική μεμονωμένη στατική ανάθεση (SSA), επιτρέπει τη φόρτωση αρχείων Mac OS X και υποστηρίζει δυαδικά αρχεία 32 και 64 bit.
Αν και ακόμα υπό ανάπτυξη, έχει φτάσει σε ένα στάδιο που το κάνει πιο χρήσιμο από το παλιό Rec Studio 2.

Οι σελίδες Rec Studio 2 βρίσκονται εδώ.

 

Δυνατότητες

 

Όπως αναφέρθηκε, το Rec Studio 4 είναι ακόμα υπό ανάπτυξη. Οι περισσότερες ανεξάρτητες λειτουργίες στόχου έχουν ολοκληρωθεί, όπως:

Αυτός ο πίνακας δείχνει τις δυνατότητες που έχουν εφαρμοστεί μέχρι στιγμής για συγκεκριμένους στόχους:

Δυνατότητα x86 (ia32) x86_64 Mips PowerPC mc68k ARM
Αποσυναρμολογητής Τέλος Τέλος Τέλος Τέλος Τέλος Σχεδιασμένο
Φορτωτής PE COFF Τέλος Τέλος n/a n/a n/a n/a
Φορτωτής ELF Τέλος Τέλος Τέλος Τέλος Τέλος Σχεδιασμένο
Φορτωτής COFF Τέλος n/a n/a n/a Τέλος n/a
Φορτωτής Mac OS X Τέλος Τέλος n/a Σχεδιασμένο n/a Σχεδιασμένο
Συμβολικές πληροφορίες Dwarf2 Τέλος Τέλος Τέλος Τέλος n/a Σχεδιασμένο
COFF συμβολικές πληροφορίες Σχεδιασμένο n/a n/a n/a Σχεδιασμένο n/a
Κλήση συνεδρίων Σε εξέλιξη Σε εξέλιξη Σε εξέλιξη Σχεδιασμένο Σχεδιασμένο Σχεδιασμένο
32 και 64 bit Σε εξέλιξη Σε εξέλιξη n/a n/a n/a n/a
Κινούμενο σημείο Σχεδιασμένο Σχεδιασμένο n/a n/a n/a n/a
Εντοπιστής σφαλμάτων των Windows Σε εξέλιξη Σχεδιασμένο n/a n/a n/a n/a
Εντοπιστής σφαλμάτων Gdb Σε εξέλιξη Σε εξέλιξη n/a n/a n/a n/a

Οι πηγές REC δεν βρίσκονται σε δημόσιο τομέα.

Αν και το REC μπορεί να διαβάσει εκτελέσιμα αρχεία Win32 (γνωστά και ως PE) που παράγονται από τη Visual C++ ή Visual Basic 5, υπάρχουν περιορισμοί στην παραγωγή που παράγεται. REC θα προσπαθήσει να χρησιμοποιήσει οποιαδήποτε πληροφορία υπάρχει στον πίνακα συμβόλων .EXE. Εάν το αρχείο .EXE έχει μεταγλωττιστεί χωρίς πληροφορίες εντοπισμού σφαλμάτων, εάν ένα πρόγραμμα Χρησιμοποιήθηκε μορφή αρχείου βάσης δεδομένων (.PDB) ή Codeview (C7), ή εάν η βελτιστοποίηση Η επιλογή του μεταγλωττιστή ήταν ενεργοποιημένη, η έξοδος που παράγεται δεν θα είναι πολύ Καλός. Επιπλέον, τα εκτελέσιμα αρχεία της Visual Basic 5 είναι ένας συνδυασμός Υπορουτίνα κώδικα και δεδομένα Φόρμα. Είναι σχεδόν αδύνατο να προσδιορίσει το REC Ποιο είναι ποιο. Η μόνη επιλογή είναι να χρησιμοποιήσετε ένα αρχείο .cmd και να καθορίσετε με μη αυτόματο τρόπο ποια περιοχή είναι κώδικας και ποια περιοχή δεδομένα.

Στην πράξη, μόνο τα εκτελέσιμα αρχεία C παράγουν ουσιαστικά απομεταγλωττισμένα αποτελέσματα.


Αναφορές

  <κέντρο> Αρκετοί άλλοι απομεταγλωττιστές είναι διαθέσιμοι από διάφορες πηγές. Δείτε τη σελίδα μου αντίστροφης μηχανικής για λίστα.

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

Μάικ βαν Έμερικ Η διδακτορική διατριβή προώθησε σημαντικά τον τομέα της αποσυμπίλησης περιγράφοντας λύσεις για θεμελιώδη προβλήματα στην αποσυμπίληση δυαδικών προγραμμάτων.

Cristina Cifuentes' Τεχνικές Αντίστροφης Σύνταξης Η διδακτορική διατριβή περιγράφει λεπτομερώς τη θεωρία και υλοποίηση του dcc decompiler για 8086 προγράμματα DOS.

Η σελίδα Wotsit έχει συνδέσμους προς προδιαγραφές μορφών αρχείων αντικειμένων όπως COFF και ELF.

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

Άλλα βασικά βιβλία που χρησιμοποίησα κατά την ανάπτυξη είναι:

  • "Μεταγλωττιστές - Αρχές, Τεχνικές και Εργαλεία", Aho, Sethi, Ullman, 1986 Addison-Wesley Publishing Co.  ISBN 0-201-10088-6.
  • "Advanced Compiler Design & Implementation", Steven Muchnick, 1997 Morgan Kaufmann Publishers, ISBN 1-55860-320-4.
  • "Πώς λειτουργούν τα προγράμματα εντοπισμού σφαλμάτων - Αλγόριθμοι, Δομές Δεδομένων και Αρχιτεκτονική", Jonathan Rosemberg, 1996 John Wiley and Sons, ISBN 0-471-14966-7.
Οι αποσυναρμολογητές που χρησιμοποιούνται στο REC ελήφθησαν από διάφορες πηγές. Το αρχείο copyrite στη διανομή έχει μια λίστα πιστώσεων για κάθε έναν από τους αποσυναρμολογητές χρησιμοποιείται στο REC. Ο υπόλοιπος κώδικας γράφτηκε από τον εαυτό μου τα τελευταία 25 χρόνια. Θα συνεχίσω να βελτιώνω το REC στον ελεύθερο χρόνο μου, αλλά δεν μπορώ να εγγυηθώ ότι μπορώ να διορθώσω σφάλματα ή να προσθέσω νέες δυνατότητες, επεξεργαστές, ή οικοδεσπότες.

 

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

 

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

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

Για να μάθετε πότε είναι νόμιμη η χρήση απομεταγλωττιστή, θα πρέπει να διαβάσετε το κείμενο των παρακάτω περιπτώσεων:

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

Το Backer Street Software δεν υποστηρίζει τη χρήση αντίστροφης μηχανικής εργαλεία για παράνομους σκοπούς.


Ιστορικό:
 


Αρχική σελίδα του CG

Τελευταία ενημέρωση: 22 Νοεμβρίου 2015