Show simple item record

Automated malware unpacking

dc.contributor.advisorPatsakis, Constantinos
dc.contributor.advisorΠατσάκης, Κωνσταντίνος
dc.contributor.authorOlymbios, Andreas
dc.contributor.authorΟλύμπιος, Αντρέας
dc.date.accessioned2026-07-24T09:28:29Z
dc.date.available2026-07-24T09:28:29Z
dc.date.issued2026-07
dc.identifier.urihttps://dione.lib.unipi.gr/xmlui/handle/unipi/19630
dc.description.abstractΗ παρούσα πτυχιακή εργασία παρουσιάζει ένα εργαλείο που εντοπίζει και αποτυπώνει τον αποσυμπιεσμένο κώδικα συσκευασμένων εκτελέσιμων των Windows κατά την εκτέλεσή τους. Η συσκευασία κρύβει τον πραγματικό κώδικα ενός προγράμματος διατηρώντας τον συμπιεσμένο ή κρυπτογραφημένο, και τον επαναφέρει στη μνήμη μόνο όταν το πρόγραμμα εκτελείται. Το εργαλείο δεν ανακατασκευάζει ένα λειτουργικό εκτελέσιμο από το συσκευασμένο αρχείο. Αντ' αυτού, παρακολουθεί τη διεργασία-στόχο καθώς εκτελείται, εντοπίζει το σημείο όπου εκτελείται μνήμη που είχε εγγραφεί νωρίτερα, και γράφει αυτή τη μνήμη στον δίσκο ώστε να την εξετάσει ένας αναλυτής. Αυτός είναι ο στόχος που συμφωνήθηκε με τον επιβλέποντα: λήψη αποτυπώσεων μνήμης μιας διεργασίας που εκτελείται και κρίση για το αν ένα εκτελέσιμο αποσυσκευάστηκε, αντί για την παραγωγή ενός πλήρως ανακατασκευασμένου δυαδικού. Η μέθοδος ανίχνευσης είναι η εγγραφή-έπειτα-εκτέλεση (write-then-execute), η καθιερωμένη ευρετική μέθοδος στη βιβλιογραφία της γενικής αποσυσκευασίας. Το εργαλείο εκτελεί έναν στόχο 32-bit μέσω του debug API των Windows και επιβάλλει πολιτική εγγραφής-ή-εκτέλεσης (write-xor-execute) στις σελίδες μνήμης. Όταν μια σελίδα εγγράφεται και αργότερα εκτελείται, αυτό σηματοδοτεί ένα γεγονός αποσυσκευασίας. Το εργαλείο αποτυπώνει την εικόνα της διεργασίας εκείνη τη στιγμή και συνεχίζει, ώστε να παρακολουθεί συσκευαστές που αποκωδικοποιούν σε πολλά στάδια. Το εργαλείο αξιολογήθηκε σε ένα δημόσιο σύνολο δεδομένων από καλοήθη εκτελέσιμα συσκευασμένα με είκοσι τέσσερις κοινούς συσκευαστές, πέντε δείγματα ανά συσκευαστή, και ελέγχθηκε ως προς τα αρχικά αποσυσκευασμένα αρχεία. Στους συσκευαστές που αποσυσκευάζουν εντός της εικόνας της διεργασίας, ανέκτησε τον αρχικό κώδικα στα περισσότερα ή σε όλα τα δείγματα, μεταξύ άλλων για τους MEW, MPRESS, FSG, NSPack και WinUpack, με μερική ανάκτηση σε άλλους όπως οι UPX, RLPack και ASPack, με την εντροπία της αποτύπωσης να μειώνεται από περίπου 7,9 έως και 3,8. Η αξιολόγηση αποτύπωσε επίσης τα όρια της μεθόδου: συσκευαστές εικονικοποίησης και πακετοποιητές όπως το Themida και το Molebox, καθώς και συσκευαστές που αποσυσκευάζουν μέσω διαδρομών που τα τρέχοντα άγκιστρα δεν παρακολουθούν. Αυτά αναφέρονται πλήρως. Επιστημονική περιοχή: Ασφάλεια συστημάτων, ανάλυση κακόβουλου λογισμικού.el
dc.format.extent58el
dc.language.isoenel
dc.publisherΠανεπιστήμιο Πειραιώςel
dc.rightsΑναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/gr/*
dc.titleAutomated malware unpackingel
dc.title.alternativeΑυτοματοποιημένο ξεπακετάρισμα κακόβουλου λογισμικούel
dc.typeBachelor Dissertationel
dc.contributor.departmentΣχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών. Τμήμα Πληροφορικήςel
dc.description.abstractENThis thesis presents a tool that detects and captures the unpacked code of packed Windows executables while they run. Packing hides a program's real code by keeping it compressed or encrypted, then restoring it in memory only when the program runs. The tool does not rebuild a working executable from the packed file. Instead, it watches the target process as it runs, finds the point where memory that was written earlier gets executed, and writes that memory to disk so an analyst can inspect it. The detection method is write-then-execute, the standard heuristic in the generic unpacking literature. The tool runs a 32-bit target under the Windows debug API and enforces a write-xor-execute policy on memory pages. When a page is written and later executed, that marks an unpacking event. The tool captures the process image at that moment, clears its record for that page, and keeps going. This way packers that decode in several stages are followed through each stage instead of being stopped at the first. Code that is unpacked into memory allocated at runtime is covered by hooks on VirtualAlloc and VirtualProtect. The tool was evaluated on a public dataset of benign binaries packed with twenty-four commodity packers, five samples each, and cross-checked against the original unpacked files. On the packers that unpack inside the process image, it recovered the original code in most or all sampled files, including MEW, MPRESS, FSG, NSPack and WinUpack, with partial recovery on others such as UPX, RLPack and ASPack. This was confirmed by matching the dumps against the original files, and the recovered dumps entropy dropped from roughly 7.9 to as low as 3.8. The evaluation also mapped where the method stops: virtualization protectors and bundlers such as Themida and Molebox, and packers that unpack through paths the current hooks do not observe. These are reported in full rather than left out.el
dc.subject.keywordDynamic analysisel
dc.subject.keywordMalware unpackingel
dc.subject.keywordPackersel
dc.subject.keywordWrite-then-executeel
dc.subject.keywordMemory dumpel
dc.date.defense2026-07-16


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα
Except where otherwise noted, this item's license is described as
Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα

Βιβλιοθήκη Πανεπιστημίου Πειραιώς
Contact Us
Send Feedback
Created by ELiDOC
Η δημιουργία κι ο εμπλουτισμός του Ιδρυματικού Αποθετηρίου "Διώνη", έγιναν στο πλαίσιο του Έργου «Υπηρεσία Ιδρυματικού Αποθετηρίου και Ψηφιακής Βιβλιοθήκης» της πράξης «Ψηφιακές υπηρεσίες ανοιχτής πρόσβασης της βιβλιοθήκης του Πανεπιστημίου Πειραιώς»