Ιδρυματικό Αποθετήριο
Πολυτεχνείο Κρήτης
EN  |  EL

Αναζήτηση

Πλοήγηση

Ο Χώρος μου

Αδρομερής δυναμική ανάλυση βιβλιοθηκών λογισμικού

Ntousakis Grigorios

Απλή Εγγραφή


URIhttp://purl.tuc.gr/dl/dias/7E2774E8-0E5E-4CC6-A8B0-0CB0D1CE3629-
Αναγνωριστικόhttps://doi.org/10.26233/heallink.tuc.87056-
Γλώσσαel-
Μέγεθος65 σελίδεςel
Μέγεθος1,1 megabytesen
ΤίτλοςΑδρομερής δυναμική ανάλυση βιβλιοθηκών λογισμικούel
ΤίτλοςCoarse-Grained dynamic analysis of software librariesen
ΔημιουργόςNtousakis Grigoriosen
ΔημιουργόςΝτουσακης Γρηγοριοςel
Συντελεστής [Επιβλέπων Καθηγητής]Lagoudakis Michailen
Συντελεστής [Επιβλέπων Καθηγητής]Λαγουδακης Μιχαηλel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Ioannidis Sotiriosen
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Ιωαννιδης Σωτηριοςel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Νικόλαος Βασιλάκηςel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Nikolaos Vasilakisen
ΕκδότηςΠολυτεχνείο Κρήτηςel
ΕκδότηςTechnical University of Creteen
Ακαδημαϊκή ΜονάδαTechnical University of Crete::School of Electrical and Computer Engineeringen
Ακαδημαϊκή ΜονάδαΠολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώνel
ΠεριγραφήΔιπλωματική Εργασία που υποβλήθηκε στη σχολή ΗΜΜΥ του πολυτεχνείου Κρήτης για την απόκτηση προπτυχιακού διπλώματοςel
ΠερίληψηH δυναμική ανάλυση προγραμμάτων είναι μία ευρέως διαδεδομένη τεχνική που χρησιμοποιείται για την εύρεση πληροφοριών σχετικά με την εκτέλεση του προγράμματος. Σε αυτή την διπλωματική εργασία παρουσιάζεται μία νέα μορφή δυναμικής ανάλυσης που στοχεύει σε σύγχρονες δυναμικές γλώσσες προγραμματισμού, όπως η Python, η Lua και η Javascript. Αυτή η μορφή αξιοποιεί τις δυνατότητες του συστήματος εισαγωγής βιβλιοθηκών και, πιο συγκεκριμένα, το γεγονός ότι οι βιβλιοθήκες εισάγονται με μορφή κειμένου. Στον πυρήνα της, πραγματοποιεί αποσύνθεση, μετασχηματισμό και ανασύνθεση των βιβλιοθηκών, διατηρώντας την αρχική τους λειτουργικότητα. Κατά τον μετασχηματισμό εισάγει κώδικα κατασκευασμένο από τον χρήστη, ειδικό για την εκάστοτε ανάλυση, στον πηγαίο κώδικα της βιβλιοθήκης. Αυτός ο κώδικας σε συνδυασμό με διάφορα πε- ριτυλίγματα, και τον μηχανισμό παρεμβολής των γλωσσών δίνει την δυνατότητα να αναλύονται οι αλληλεπιδράσεις του προγράμματος σε επίπεδο βιβλιοθήκης χωρίς να απαιτείται μορφοποίηση του περιβάλλοντος εκτέλεσης. Αυτές οι δυνατότητες επιδεικνύονται με την χρήση της Lya, ενός συστήματος γραμμένου στην Javascript, που στοχεύει να πραγματοποιήσει δυναμική ανάλυση για την ίδια την Javascript. Τα αποτελέσματα δείχνουν ότι η Lya προσφέρει 2–3 τάξεις μεγέθους ταχύτερες αναλύσεις, σε σύγκριση με σύγχρονα συστήματα δυναμικής ανάλυσης. Δίνεται η δυνατότητα στις αναλύσεις να τρέχουν κατά την διάρκεια της παραγωγής, ανιχνεύοντας προβλήματα και συμπεριφορές μοναδικές κάτω από αυτές τις συνθήκες. Οι αναλύσεις προσφέρουν πληθώρα διαφορετικών περιπτώσεων χρήσης και γράφονται σε 100 γραμμές κώδικα κατά μέσο όρο.el
ΠερίληψηDynamic program analysis is a technique for obtaining information about a program and its execution. In this thesis, we present a new type of dynamic analysis that targets modern dynamic languages such as Python, Lua and Javascript. This kind of dynamic analysis uses the capabilities of the module-import mechanism, and more specifically the fact that libraries are imported as text. At its core, it performs disassembly, transformation and recomposition of the imported libraries, maintaining their original functionality. During the transformation phase, it injects user-generated code, specific to each analysis, into the source code of the library. This imported code, combined with various context wraps and the use of proxies, make it possible to detect interactions at the library level without altering the runtime environment. We implement this approach in Lya, a system targeting the JavaScript ecosystem, written in Javascript. The results show that Lya offers 2–3 orders of magnitude faster analyses compared to conventional dynamic analysis systems. Analyses can be enabled to run during production, detecting problems and behaviors unique to these conditions. Different analyses offer a variety of different use cases and are written in 100 lines of code οn average.el
ΤύποςΔιπλωματική Εργασίαel
ΤύποςDiploma Worken
Άδεια Χρήσηςhttp://creativecommons.org/licenses/by-sa/4.0/en
Ημερομηνία2020-10-15-
Ημερομηνία Δημοσίευσης2020-
Θεματική ΚατηγορίαProgramming languagesen
Θεματική ΚατηγορίαAnalysisen
Θεματική ΚατηγορίαPerformanceen
Θεματική ΚατηγορίαSecurityen
Θεματική ΚατηγορίαDynamic analysisen
Βιβλιογραφική ΑναφοράΓρηγόριος Ντουσάκης, "Αδρομερής δυναμική ανάλυση βιβλιοθηκών λογισμικού", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2020el
Βιβλιογραφική ΑναφοράGrigorios Ntousakis, "Coarse-Grained dynamic analysis of software libraries", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2020en

Διαθέσιμα αρχεία

Υπηρεσίες

Στατιστικά