SourceAgain Features

SourceAgain represents a new standard in Java decompilation technology. Previous efforts at Java decompilation have fallen short, but SourceAgain correctly decompiles all language constructs, including (but not limited to):

  • if-else and switch
  • infinite loops
  • for loop reconstruction
  • arbitrary nesting of do, while, and for loops
  • all breaks and continues, including labeled breaks and continues out of arbitrary enclosing scopes
  • arbitrary assignment inside of conditionals, including pre- and post-increments
  • += and -= optimizations
  • arbitrary nesting of try-catch blocks, with full support for finally
  • the ternary ? : operator
  • implicit types (boolean, char, short, byte)
  • synchronized blocks
  • inner classes, both anonymous and nested
  • Unicode
SourceAgain also supports several unique capabilities, such as:
  • Decompilation of irreducible flowgraphs.
  • Temporary variable introduction
  • Polymorphic type inferencece
  • Correctly assembled array initializers.
  • Recognition of packages.
  • Reconstruction of string concatenation using the + operator.
  • User defined naming conventions for variables and fields.
  • A heuristic for renaming "fishy" variable names.
  • Cross module name and type unmangling
  • Creation of a new class file with the correct line number table for debugging.
  • Some pretty-printing code transformations.
  • A smart heuristic for printing integers in hexadecimal.
  • Easy to read, recompilable output.
  • Insensitivity to the original compiler.
  • Support for the ZIP file format


| Home | Company | Products | Sales | Support |

©2004 Ahpah Software, Inc.