毕业设计外文文献—对Java编程语言反编译器功能的分析.docx
《毕业设计外文文献—对Java编程语言反编译器功能的分析.docx》由会员分享,可在线阅读,更多相关《毕业设计外文文献—对Java编程语言反编译器功能的分析.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、附录A外文翻译一原文部分Analysis of the Java programming language decompiler functionalityAuthor : Constantine Gusarovs Riga technical university, Riga, LatviaISSN 2255-8691 (online)ISSN 2255-8683 (print)December 2018, vol. 23, no. 2, pp. 109-117doi: 10.2478/acss-2018-0014Software development is often about pro
2、ducing new artifacts, converting code written in a programming language into binary distributions, and sometimes performing reverse operations, or reverse engineering. Reverse engineering is the process of extracting knowledge or blueprints from anything man-made. Related to software engineering, th
3、is can be described as extracting source code from binary (compiled) files. While at first glance such a process might seem to run afoul of copyright, it is sometimes necessary to do so. For example, it may be necessary to fix a bug in a program or library that a company developed some time ago, but
4、 lacks any source code for that program or library. Another aspect of software reverse engineering may be the need to extract information from libraries/programs that do not have source code, such as cryptographic keys. Basically, these are valid and legitimate use cases for reverseengineering your
5、own products. The study of computer viruses by the authors of antivirus software is another example of an effective reverse engineering application necessary to understand how malware works and how to take action against it.Based on the TIOBE index, one of the most popular programming languages in e
6、nterprise development is the Java programming language, an object-oriented programming language that USES bytecode instructions executed by stack-based virtual machines. The fact that Java is built around bytecode rather than assembly language provides several advantages for example, if a virtual ma
7、chine implementation exists for the platform described above, code written at once can be executed on different platforms. From a reverse engineering perspective, this means that you only need to deal with bytecode, which contains fewer instructions than assembly languages. Thus, in order to convert
8、 Java bytecode into source code, it is necessary to translate about 200 different instructions to the latest version of Java (10), compared to, for example, an Intel processor assembly instruction set containing about 2,000 different instructions seems a simple task.Such a task can be performed with
9、 software called a ndecomcompiler/ which converts binary artifacts to source code with some precision. Several decomcompilers exist in the Java programming language, and the purpose of this article is to compare them to provide advice to software developers. The structure of this article is as follo
10、ws. The second section presents a selection list of decompilers for the Java programming language. Section 3 provides a brief introduction to the Java programming language binary file format and bytecode instructions. Section 4 gives several examples of Java bytecode decompilation techniques used by
11、 decompilers. The fifth part introduces a test case developed by the author. The sixth part presents the results of test case decompilation and gives a brief analysis of the results. Part 7 describes additional test results and the use of additional criteria defined by the authors of this article to
12、 compare decomcompilers. Finally, the Java decompiler software is summarized and recommended.There are several decompilers for the Java programming language. In order to select the programs to use, it is necessary to compare them. In this section, the authors provide a list of such software. The lis
13、t of decompiled software is built using the authors personal experience with such software and the results of the authors current workplace surveys to determine what other programmers would recommend for such tasks. JD Project is a modular decomcompiler that can be run as a standalone application or
14、 integrated into a development environment, such as Eclipse or Intellij IDEA. CFR is distributed as a library that contains the command line interface (CLI) and can also be used as part of other software. Procyon is a framework that can be integrated into other applications and includes CLI. It has
15、several graphical user interface (GUI) implementations. Fernflower is a Java decompiler used in the Intellij TDEA8 development environment. It is distributed as a library, which also has a CLI interface.The Java virtual machine (JVM) USES a binary.class file that contains the results of the source c
16、ode compilation. These files contain all the necessary information about the compilation unit (basically a Java class or interface), including: generate the compiler version of the given.class file. This allows the JVM to detect whether it should be able to load and execute a given file. constant po
17、ol, containing various strings, class and interface names, field and method names, and other constants used in a given compilation unit access flags to determine the visibility and type of a given compilation unit. This information defines whether and how the actual classes contained in the file can
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 外文 文献 Java 编程 语言 编译器 功能 分析
限制150内