summaryrefslogtreecommitdiffstats
path: root/dist/docs
diff options
context:
space:
mode:
Diffstat (limited to 'dist/docs')
-rw-r--r--dist/docs/license_en.txt51
-rw-r--r--dist/docs/lizenz_de.txt62
-rw-r--r--dist/docs/readme.txt86
3 files changed, 199 insertions, 0 deletions
diff --git a/dist/docs/license_en.txt b/dist/docs/license_en.txt
new file mode 100644
index 0000000..4789841
--- /dev/null
+++ b/dist/docs/license_en.txt
@@ -0,0 +1,51 @@
+Fernflower Freeware License 1.0
+
+This license applies to the Fernflower decompiler (hereafter “Software")
+including any associated files, information and examples.
+
+You are hereby granted a non-exclusive and non-transferable license to
+use and distribute the Software in binary form according to the following
+terms and conditions.
+
+
+1) Copies and Redistribution
+
+You may copy and distribute unmodified binary copies of the Software
+provided that you keep this license intact. You must NOT charge money
+or fees for the Software except to cover the absolutely necessary
+distribution costs.
+
+Any other form of redistribution is prohibited. Especially you are not
+allowed to redistribute the Software as part of any other software
+collection or other product.
+
+
+2) Use
+
+You may use the Software "as is" in any commercial or non-commercial environment
+for any purpose.
+
+
+3) Contact Information
+
+The sole author and owner of Fernflower is Stiver. Address all correspondence regarding
+this license to:
+
+fernflower.decompiler@gmail.com
+
+http://www.reversed-java.com
+
+
+4) Disclaimer of Warranty
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
diff --git a/dist/docs/lizenz_de.txt b/dist/docs/lizenz_de.txt
new file mode 100644
index 0000000..a961e05
--- /dev/null
+++ b/dist/docs/lizenz_de.txt
@@ -0,0 +1,62 @@
+Fernflower Freeware Lizenz 1.0
+
+Gegenstand der vorliegenden Lizenz ist der Fernflower Decompiler (im Folgenden "Software" genannt)
+einschließlich aller dazu gehörenden Dateien, Informationen und Beispiele.
+
+Hiermit erhalten Sie eine nicht-ausschließliche und nicht-übertragbare Lizenz
+für die Nutzung und Weitergabe der Software gemäß den nachfolgenden
+Bedingungen.
+
+
+1) Kopieren und Weitergeben
+
+Sie dürfen die Software kopieren und exakte Binärkopien unverändert
+weitergeben, vorausgesetzt, diese Lizenz bleibt in der ursprünglichen Form
+erhalten. Sie dürfen KEINE wie auch immer geartete Bezahlung oder Gebühren
+für die Software verlangen, außer um die absolut unvermeidbaren Selbstkosten
+der Weitergabe zu decken.
+
+Jede andere Form der Weitergabe ist untersagt. Insbesondere ist es nicht gestattet,
+die Software als Teil einer anderen Softwaresammlung oder eines anderen Produktes
+weiterzugeben.
+
+
+2) Nutzung
+
+Sie können die Software beliebig in jeder kommerziellen oder nicht-kommerziellen Umgebung
+zu jedem Zweck einsetzen.
+
+
+3) Kontaktinformation
+
+Der einzige Autor und Eigentümer von Fernflower ist Stiver. Alle Rückfragen bezüglich dieser Lizenz
+sind an
+
+fernflower.decompiler@gmail.com
+
+http://www.reversed-java.com
+
+zu richten.
+
+
+4) GARANTIE- UND HAFTUNGSBESCHRÄNKUNGEN
+
+DIESE SOFTWARE WIRD IHNEN AUF DER GRUNDLAGE DES GEGENWÄRTIGEN ZUSTANDS ZUR
+VERFÃœGUNG GESTELLT. ES GIBT KEINE GARANTIE, WEDER AUSDRÃœCKLICH NOCH IMPLIZIT.
+DIES SCHLIEßT AUCH GARANTIEANSPRÜCHE BEZÜGLICH DER VERKAUFSQUALITÄT,
+VERKÄUFLICHKEIT ODER EIGNUNG FÜR EINEN BESTIMMTEN ZWECk AUS, ODER SOLCHE, DIE
+DURCH GELTENDES RECHT, GESETZLICHE VORSCHRIFTEN, GESCHÄFTSGEBRAUCH ODER
+HANDELSVERKEHR VERURSACHT WERDEN. DAS GESAMTE RISIKO IN BEZUG AUF DIE ERGEBNISSE
+UND DIE LEISTUNG DES PROGRAMMS LIEGT BEI IHNEN. WEDER DER AUTOR NOCH IRGENDEIN
+AN DEM PROJEKT BETEILIGTER HAT IRGENDEINE HAFTUNGSVERPFLICHTUNG IHNEN ODER
+IRGENDEINER ANDEREN PERSON ODER INSTITUTION GEGENÃœBER FÃœR JEDWEDE INDIREKTE,
+ZUFÄLLIGE, BESONDERE SCHÄDEN ODER IRGENDWELCHE FOLGESCHÄDEN. DIES GILT AUCH FÜR
+SCHÄDEN AUS ENTGANGENEM GEWINN, VERLORENEN ODER BESCHÄDIGTEN DATEN ODER FÜR
+ANDERE KOMMERZIELLE ODER WIRTSCHAFTLICHE VERLUSTE, SELBST DANN, WENN DER AUTOR
+ODER IRGENDEIN AN DEM PROJEKT BETEILIGTER AUF DIE MÖGLICHKEIT DERARTIGER SCHÄDEN
+HINGEWIESEN WURDE ODER DIESE VORHERSEHBAR WAREN, ODER FÃœR ANSPRÃœCHE DRITTER. DIE
+HIER FESTGELEGTEN HAFTUNGSBESCHRÄNKUNGEN GELTEN UNABHÄNGUG DAVON, OB DER VERMEINTLICHE
+ODER TATSÄCHLICHE VERTRAGSBRUCH EINE GRUNDSÄTZLICHE BEDINGUNG ODER
+VERTRAGSVEREINBARUNG BERÜHRT, ODER EIN GRUNDSÄTZLICHER VERTRAGSBRUCH IST. DIESER
+ABSATZ IST EIN ESSENZIELLER TEIL DIESER LIZENZ. ES IST VERBOTEN DAS PROGRAMM ZU
+BENUTZEN OHNE DASS DIESEM ABSATZ ZUGESTIMMT WIRD.
diff --git a/dist/docs/readme.txt b/dist/docs/readme.txt
new file mode 100644
index 0000000..b00a1f4
--- /dev/null
+++ b/dist/docs/readme.txt
@@ -0,0 +1,86 @@
+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
+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
+
+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.