diff options
author | Stiver <stiver.mail@gmail.com> | 2014-03-04 15:13:11 +0100 |
---|---|---|
committer | Stiver <stiver.mail@gmail.com> | 2014-03-04 15:13:11 +0100 |
commit | e2d0f5d9c38561d67f23754c00addb4a3547efb2 (patch) | |
tree | 1832f16037c086b48266b8566aecc61f45f4e5f1 /dist | |
download | fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.gz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.lz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.xz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.zip |
initial commit
Diffstat (limited to 'dist')
-rw-r--r-- | dist/docs/license_en.txt | 51 | ||||
-rw-r--r-- | dist/docs/lizenz_de.txt | 62 | ||||
-rw-r--r-- | dist/docs/readme.txt | 86 | ||||
-rw-r--r-- | dist/full/fernflower.jar | bin | 0 -> 648087 bytes | |||
-rw-r--r-- | dist/obfuscated/fernflower.jar | bin | 0 -> 258058 bytes |
5 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. diff --git a/dist/full/fernflower.jar b/dist/full/fernflower.jar Binary files differnew file mode 100644 index 0000000..2e2331c --- /dev/null +++ b/dist/full/fernflower.jar diff --git a/dist/obfuscated/fernflower.jar b/dist/obfuscated/fernflower.jar Binary files differnew file mode 100644 index 0000000..028c7a6 --- /dev/null +++ b/dist/obfuscated/fernflower.jar |