diff options
author | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-08-28 20:31:35 +0400 |
---|---|---|
committer | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-08-28 20:31:35 +0400 |
commit | 270a3f6e22782278a5254c4c073cad2ad8b6ccf8 (patch) | |
tree | 55ea555868fdab92eff97395d36aa83599f0cf39 /dist/docs/readme.txt | |
parent | b3705cf40072203386d784c161419cbcc9e9d164 (diff) | |
download | fernflower-270a3f6e22782278a5254c4c073cad2ad8b6ccf8.tar fernflower-270a3f6e22782278a5254c4c073cad2ad8b6ccf8.tar.gz fernflower-270a3f6e22782278a5254c4c073cad2ad8b6ccf8.tar.lz fernflower-270a3f6e22782278a5254c4c073cad2ad8b6ccf8.tar.xz fernflower-270a3f6e22782278a5254c4c073cad2ad8b6ccf8.zip |
java-decompiler: post-import cleanup (unneeded files dropped)
Diffstat (limited to 'dist/docs/readme.txt')
-rw-r--r-- | dist/docs/readme.txt | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/dist/docs/readme.txt b/dist/docs/readme.txt deleted file mode 100644 index daf05cf..0000000 --- a/dist/docs/readme.txt +++ /dev/null @@ -1,92 +0,0 @@ -1. About the decompiler - -Fernflower is the first actually working analytical decompiler for Java and -probably for a high-level programming language in general. Naturally it is still -under development, please send your bug reports and improvement suggestions at -fernflower.decompiler@gmail.com - - -2. License - -See license_en.txt - - -3. Running from the command line - -java -jar fernflower.jar [-<option>=<value>]* [<source>]+ <destination> - -* means 0 or more times -+ means 1 or more times - -<source>: file or directory with files to be decompiled. Directories are recursively scanned. Allowed file extensions are class, zip and jar. - Sources prefixed with -e= mean "library" files that won't be decompiled, but taken into account when analysing relationships between - classes or methods. Especially renaming of identifiers (s. option 'ren') can benefit from information about external classes. -<destination>: destination directory -<option>,<value>: command line option with the corresponding value, see 4. - -Examples: - -java -jar fernflower.jar -hes=0 -hdc=0 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\ - -java -jar fernflower.jar -dgs=1 c:\Temp\binary\library.jar c:\Temp\binary\Boot.class c:\Temp\source\ - - -4. Command line options - -With the exception of mpm and urc the value of 1 means the option is activated, 0 - deactivated. Default -value, if any, is given between parentheses. - -Typically, the following options will be changed by user, if any: hes, hdc, dgs, mpm, ren, urc -The rest of options can be left as they are: they are aimed at professional reverse engineers. - -rbr (1): hide bridge methods -rsy (0): hide synthetic class members -din (1): decompile inner classes -dc4 (1): collapse 1.4 class references -das (1): decompile assertions -hes (1): hide empty super invocation -hdc (1): hide empty default constructor -dgs (0): decompile generic signatures -occ (0): ouput copyright comment -ner (1): assume return not throwing exceptions -den (1): decompile enumerations -rgn (1): remove getClass() invocation, when it is part of a qualified new statement -lit (0): output numeric literals "as-is" -asc (0): encode non-ASCII characters in string and character literals as Unicode escapes -bto (1): interpret int 1 as boolean true (workaround to a compiler bug) -nns (1): allow for not set synthetic attribute (workaround to a compiler bug) -uto (1): consider nameless types as java.lang.Object (workaround to a compiler architecture flaw) -udv (1): reconstruct variable names from debug information, if present -rer (1): remove empty exception ranges -fdi (1): deinline finally structures -asc (0): allow only ASCII characters in string literals. All other characters will be encoded using Unicode escapes (JLS 3.3). Default encoding is UTF8. -mpm (0): maximum allowed processing time per decompiled method, in seconds. 0 means no upper limit. -ren (0): rename ambiguous (resp. obfuscated) classes and class elements -urc : full name of user-supplied class implementing IIdentifierRenamer. It is used to determine which - class identifiers should be renamed and provides new identifier names. For more information - s. section 5 -inn (1): check for IntelliJ IDEA-specific @NotNull annotation and remove inserted code if found -lac (0): decompile lambda expressions to anonymous classes -nls (0): define new line character to be used for output. 0 - '\r\n' (Windows), 1 - '\n' (Linux) -ind : indentation string (default is " " (3 spaces)) - -The default logging level is INFO. This value can be overwritten by setting the option 'log' as follows: - -log (INFO): possible values TRACE, INFO, WARN, ERROR - - -5. Renaming identifiers - -Some obfuscators give classes and their member elements short, meaningless and above all ambiguous names. Recompiling of such -code leads to a great number of conflicts. Therefore it is advisable to let the decompiler rename elements in its turn, -ensuring uniqueness of each identifier. - -Option 'ren' (i.e. -ren=1) activates renaming functionality. Default renaming strategy goes as follows: -- rename an element if its name is a reserved word or is shorter than 3 characters -- new names are built according to a simple pattern: (class|method|field)_<consecutive unique number> -You can overwrite this rules by providing your own implementation of the 4 key methods invoked by the decompiler while renaming. Simply -pass a class that implements de.fernflower.main.extern.IIdentifierRenamer in the option 'urc' (e.g. -urc=com.mypackage.MyRenamer) to -Fernflower. The class must be available on the application classpath. - -The meaning of each method should be clear from naming: toBeRenamed determine whether the element will be renamed, while the other three -provide new names for classes, methods and fields respectively. |