SwePub
Sök i LIBRIS databas

  Extended search

onr:"swepub:oai:DiVA.org:kth-279880"
 

Search: onr:"swepub:oai:DiVA.org:kth-279880" > Java decompiler div...

  • 1 of 1
  • Previous record
  • Next record
  •    To hitlist

Java decompiler diversity and its application to meta-decompilation

Harrand, Nicolas (author)
KTH,Programvaruteknik och datorsystem, SCS
Soto Valero, César (author)
KTH,Programvaruteknik och datorsystem, SCS
Monperrus, Martin (author)
KTH,Teoretisk datalogi, TCS
show more...
Baudry, Benoit (author)
KTH,Programvaruteknik och datorsystem, SCS
show less...
 (creator_code:org_t)
Elsevier BV, 2020
2020
English.
In: Journal of Systems and Software. - : Elsevier BV. - 0164-1212 .- 1873-1228. ; 168
  • Journal article (peer-reviewed)
Abstract Subject headings
Close  
  • During compilation from Java source code to bytecode, some information is irreversibly lost. In other words, compilation and decompilation of Java code is not symmetric. Consequently, decompilation, which aims at producing source code from bytecode, relies on strategies to reconstruct the information that has been lost. Different Java decompilers use distinct strategies to achieve proper decompilation. In this work, we hypothesize that the diverse ways in which bytecode can be decompiled has a direct impact on the quality of the source code produced by decompilers. In this paper, we assess the strategies of eight Java decompilers with respect to three quality indicators: syntactic correctness, syntactic distortion and semantic equivalence modulo inputs. Our results show that no single modern decompiler is able to correctly handle the variety of bytecode structures coming from real-world programs. The highest ranking decompiler in this study produces syntactically correct, and semantically equivalent code output for 84%, respectively 78%, of the classes in our dataset. Our results demonstrate that each decompiler correctly handles a different set of bytecode classes. We propose a new decompiler called Arlecchino that leverages the diversity of existing decompilers. To do so, we merge partial decompilation into a new one based on compilation errors. Arlecchino handles 37.6% of bytecode classes that were previously handled by no decompiler. We publish the sources of this new bytecode decompiler. (C) 2020 Published by Elsevier Inc.

Subject headings

NATURVETENSKAP  -- Data- och informationsvetenskap (hsv//swe)
NATURAL SCIENCES  -- Computer and Information Sciences (hsv//eng)

Keyword

Java bytecode
Decompilation
Reverse engineering
Source code analysis

Publication and Content Type

ref (subject category)
art (subject category)

Find in a library

To the university's database

  • 1 of 1
  • Previous record
  • Next record
  •    To hitlist

Search outside SwePub

Kungliga biblioteket hanterar dina personuppgifter i enlighet med EU:s dataskyddsförordning (2018), GDPR. Läs mer om hur det funkar här.
Så här hanterar KB dina uppgifter vid användning av denna tjänst.

 
pil uppåt Close

Copy and save the link in order to return to this view