作者: Jerome Miecznikowski , Laurie Hendren
关键词: Java 、 Real time Java 、 Programming language 、 Java annotation 、 Java bytecode 、 Generics in Java 、 Java applet 、 Computer science 、 Java Modeling Language 、 Bytecode
摘要: Java virtual machines execute bytecode instructions. Since this is a higher level representation than traditional object code, it possible to decompile back source. Many such decompilers have been developed and the conventional wisdom that decompiling relatively simple. This may be true when produced directly from specific compiler, most often Sun's javac compiler. In case really matter of inverting known compilation strategy. However, there are many problems, traps pitfalls arbitrary verifiable bytecode. Such could by other compilers, byte-code optimizers or obfuscators. can also compilers for languages, including Haskell, Eiffel, ML, Ada Fortran. These use very different code generation strategies javac.This paper outlines problems solutions we found in our development Dava, decompiler We first outline assigning types variables literals, due expression evaluation on stack. Then, look at finding structured control flow with particular emphasis issues related exceptions synchronized blocks. Throughout provide small examples which not properly decompiled commonly used decompilers.