Προγραμματισμός

Ο αποκωδικοποιητής C / C ++ μεταφράζει προγράμματα, δεν απαιτείται πηγαίος κώδικας

Με ένα νέο αποκωδικοποιητή για C / C ++, οι προγραμματιστές μπορούν να αποκτήσουν πληροφορίες σχετικά με τη λειτουργία ενός προγράμματος χωρίς να κοιτάξουν τον πηγαίο κώδικα. Αυτό είναι το σχέδιο για τον Snowman, το οποίο ο κύριος προγραμματιστής του έργου ελπίζει να κάνει παρόμοιο με ένα LLVM για αποσυμπίεση.

Ο χιονάνθρωπος αποσυντίθεται από κώδικα μηχανής σε C με μικρή υποστήριξη για το C ++ και ο πηγαίος κώδικας θα πρέπει να κυκλοφορήσει μέσα σε αρκετούς μήνες, δήλωσε ο επικεφαλής προγραμματιστής Yegor Derevenets, φοιτητής πανεπιστημίου στη Γερμανία, σε απάντηση μέσω ηλεκτρονικού ταχυδρομείου σε ερωτήσεις.

Η τεχνολογία είναι «εξαιρετικά αρθρωτή», δήλωσε ο Derevenets. Βασίζεται σε μια βιβλιοθήκη αποσύνθεσης που μπορεί εύκολα να ενσωματωθεί σε άλλα συστήματα. Για παράδειγμα, παρέχουμε τρεις εφαρμογές που το χρησιμοποιούν: έναν αποκωδικοποιητή γραμμής εντολών, έναν αποκωδικοποιητή GUI και μια προσθήκη αποσυναρμολογητή IDA. Ας ελπίσουμε ότι, μετά την κυκλοφορία του πηγαίου κώδικα, ο Snowman θα γίνει τελικά ο LLVM για την αποσυμπίεση.

«Ο σκοπός ενός αποκωδικοποιητή είναι να μεταφράσει προγράμματα σε αναπαράσταση χαμηλού επιπέδου, όπως κώδικα μηχανής ή bytecode, σε προγράμματα σε γλώσσα προγραμματισμού υψηλού επιπέδου, όπως C, C ++ ή Java και C #,» είπε ο Derevenets. «Μια τέτοια μετάφραση μπορεί να είναι χρήσιμη για άτομα που προσπαθούν να καταλάβουν πώς λειτουργεί ένα πρόγραμμα χαμηλού επιπέδου χωρίς να έχουν πρόσβαση στον πηγαίο κώδικα: μηχανικοί ασφαλείας, αναλυτές ιών, συντηρητές παλαιών συστημάτων των οποίων ο κωδικός έχει χαθεί.

Η τρέχουσα έκδοση 0,0,5 του Snowman διαθέτει C / C ++ επεξεργασία κώδικα, refactoring, κώδικα πλοήγησης και βελτιώσεις απόδοσης GUI. Έξι εκδόσεις σημείων έχουν δημοσιευτεί από τον Ιούνιο, συμπεριλαμβανομένης της κυκλοφορίας στα μέσα Οκτωβρίου με πρόσθετο για τον αποσυναρμολογητή IDA.