Η χρήση των συντακτικών δέντρων στην δημιουργία μιας εφαρμογής ανάλυσης προγραμμάτων Java - (:unkn) unknown (My University, 2024)
Σκοπός αυτής της διπλωματικής εργασίας είναι η ανάπτυξη ενός λογισμικού το οποίο λειτουργεί ως ένα εργαλείο ανάλυσης προγραμμάτων Java. Αυτό σημαίνει ότι το νέο πρόγραμμα είναι σε θέση να εμφανίζει τα bytecodes που αντιστοιχούν σε ένα αρχείο το οποίο δίνει ως είσοδο ο χρήστης. Το αρχείο εισόδου μπορεί να είναι ένα ήδη μεταγλωττισμένο αρχείο (με κατάληξη .class) ή ένα αρχείο πηγαίου κώδικα το οποίο αναλαμβάνει να μεταγλωττίσει το ίδιο το πρόγραμμα με σκοπό να εμφανίσει τα bytecodes που αντιστοιχούν σε αυτό. Η δεύτερη λειτουργία που επιτελεί το νέο αυτό λογισμικό είναι αυτή του decompiler. Με άλλα λόγια, ο χρήστης μπορεί να δίνει ως είσοδο ένα .class αρχείο και να παίρνει ως έξοδο τον πηγαίο κώδικα που αντιστοιχεί σε αυτό. Αυτές οι δύο λειτουργίες πραγματοποιούνται μέσω μοντέρνων αλγορίθμων οι οποίοι κάνουν εκτενή χρήση των συντακτικών δέντρων καθώς και της βιβλιοθήκης ανοιχτού κώδικα javassist.
The use of syntax trees in the creation of a Java Decompiler application
Keywords: Decompiler, Bytecode Viewer, Java, Συντακτικό Δέντρο, Ανάλυση Προγράμματος, Reverse Engineering; Decompiler, Bytecode Viewer, Java, Syntax Tree, Reverse Engineering