Συλλογές | |
---|---|
Τίτλος |
Java decompiler using machine translation techniques |
Δημιουργός |
Chatzilenas, Christos, Χατζηλένας, Χρήστος |
Συντελεστής |
Athens University of Economics and Business, Department of Informatics Spinellis, Diomidis |
Τύπος |
Text |
Φυσική περιγραφή |
50p. |
Γλώσσα |
en |
Περίληψη |
A decompiler is a computer program that converts an executable file or low-level/machine language into a format that is understandable to software programmers. Even though a decompiler may not always reconstruct perfectly the original source code, it remains an important tool for reverse engineering of computer software. The process of decompilation is very useful for the recovery of lost source code, for analyzing and understanding software whose code is not available, even for computer security in some cases. In this thesis, in order to address the decompilation problem we transform it to a translation problem which can be solved using machine translation. Two approaches are studied, statistical and neural machine translation, using two open-source tools Moses and OpenNMT, respectively. Maven repositories are retrieved from GitHub in order to form the dataset and an appropriate procedure is used to construct the parallel corpora. In this context experiments in Moses are not successful while the result of translation using neural machine translation, is fairly good. The difference between the decompiler presented in this thesis and existing Java decompilers is the fact that it can translate bytecode snippets. Additionally, this approach can be extended to produce better results by recovering variables, methods, class names and comments. Finally, this study illustrates that the Java source code which is produced from the decompilation procedure is useful. However, extending it may produce better results. |
Λέξη κλειδί |
Java decompiler Statistical machine translation Neural machine translation Moses OpenNMT |
Ημερομηνία |
29-06-2018 |
Άδεια χρήσης |
https://creativecommons.org/licenses/by/4.0/ |