initial commit
This commit is contained in:
51
dist/docs/license_en.txt
vendored
Normal file
51
dist/docs/license_en.txt
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
Fernflower Freeware License 1.0
|
||||
|
||||
This license applies to the Fernflower decompiler (hereafter <20>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.
|
||||
62
dist/docs/lizenz_de.txt
vendored
Normal file
62
dist/docs/lizenz_de.txt
vendored
Normal file
@@ -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.
|
||||
86
dist/docs/readme.txt
vendored
Normal file
86
dist/docs/readme.txt
vendored
Normal file
@@ -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.
|
||||
Reference in New Issue
Block a user