μήπως γνωρίζει κανείς αν μπορώ από assembly language, μέσω κάποιου προγράμματος, να παράγω κώδικα σε higher level γλώσσα, Για παράδειγμα C++;
Φόρουμ
Δώσε αστέρια!
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε
μήπως γνωρίζει κανείς αν μπορώ από assembly language, μέσω κάποιου προγράμματος, να παράγω κώδικα σε higher level γλώσσα, Για παράδειγμα C++;
Σχόλια
Τελικά δεν γίνεται αυτόματα. Υπάρχουν κάποια εργαλεία (decompilers) τα οποία είναι σε πολύ πρώιμο στάδιο.
http://en.wikibooks.org/wiki/Reverse_Engineering/Tools
Δε γίνεται 100% αυτό που λες, για διάφορους λόγους. Μπορεί π.χ. το αρχικό source να είναι κάτι σαν:
(in-package :keramida)
(defun delete-odd (list &optional (test #'oddp))
(declare (type cons list))
(remove-if test list))
ή μπορεί να είναι σε C, σε Python, σε Perl κλπ. Ακόμη και να ξέρεις την αρχική γλώσσα (οπότε μπορείς να "ταιριάξεις" συγκεκριμένα assembly patterns με higher level constructs), μπορεί ο compiler να έχει κάνει optimize, unroll loops, inline κάποια function calls, κι ένα σωρό άλλα πράγματα που είναι "μη αντιστρέψιμα".