Decompiling Java using staged encapsulation
The paper presents an approach to program structuring for use in decompiling Java bytecode to Java source. The structuring approach uses three intermediate representations: (1) a list of typed, aggregated statements with an associated exception table, (2) a control flow graph, and (3) a structure en...
        Saved in:
      
    
          | Published in | Proceedings Eighth Working Conference on Reverse Engineering pp. 368 - 374 | 
|---|---|
| Main Authors | , | 
| Format | Conference Proceeding | 
| Language | English | 
| Published | 
            IEEE
    
        2001
     | 
| Subjects | |
| Online Access | Get full text | 
| ISBN | 0769513034 9780769513034  | 
| ISSN | 1095-1350 | 
| DOI | 10.1109/WCRE.2001.957845 | 
Cover
| Summary: | The paper presents an approach to program structuring for use in decompiling Java bytecode to Java source. The structuring approach uses three intermediate representations: (1) a list of typed, aggregated statements with an associated exception table, (2) a control flow graph, and (3) a structure encapsulation tree. The approach works in six distinct stages, with each stage focusing on a specific family of Java constructs, and each stage contributing more detail to the structure encapsulation tree. After completion of all stages the structure encapsulation tree contains enough information to allow a simple extraction of a structured Java program. The approach targets general Java bytecode including bytecode that may be the result of front-ends for languages other than Java, and also bytecode that has been produced by a bytecode optimizer. Thus, the techniques have been designed to work for bytecode that may not exhibit the typical structured patterns of bytecode produced by a standard Java compiler. The structuring techniques have been implemented as part of the Dava decompiler which has been built using the Soot framework. | 
|---|---|
| ISBN: | 0769513034 9780769513034  | 
| ISSN: | 1095-1350 | 
| DOI: | 10.1109/WCRE.2001.957845 |