Smokescreen home
|
| Revision history |
| User guide |
| Installation guide |
| Obfuscation notes |
| Directives file |
| Incremental obfuscation |
| Buildtool integration |
| Watermarking |
| License and download |
| Purchase |
| Faqs/Known issues |
| Email |
|
|
|
|
|
|
Release List |
|
|
Revision 3.73 (18 September 2010)
Additions/changes:
1) Fixed a bug preventing the selection of jar files for
obfuscation.
Revision 3.72 (4 August 2010)
Additions/changes:
1) The size of obfuscated files that use string encryption has been
reduced.
Revision 3.71 (22 February 2010)
Additions/changes:
1) Minor improvements to flow obfuscation.
Revision 3.7 (1 December 2009)
Additions/changes:
1) Insertion and retrieval of watermarks using the 'watermark_string',
'watermark_password' and 'read_watermarks' directives.
2) Fixed a bug where Smokescreen will stop with an error in rare cases,
due to an incorrect calculation of method stack size.
Revision 3.61 (29 October 2008)
Additions/changes:
1) Fixed a bug that caused the obfuscator to stop with an error
message, when encountering an interface with more than one
super-interface.
Revision 3.6 (21 April 2008)
Additions/changes:
1) The format of directives has been simplified.
2) New directives 'ignore_native' and 'preserve_class' added.
3) Directives can now be entered as options through the command line.
4) Two api methods introduced to perform the obfuscation.
5) The path to the log file can now be specified.
Revision 3.56 (15 March 2008)
Additions/changes:
1) Fixed bug where class files are not accepted as external
classes when using the 'superclass_path' directive.
Revision 3.55 (23 February 2008)
Additions/changes:
1) Fixed bug where a class constant with an array descriptor
in the class name, causes Smokescreen to stop with an error.
Revision 3.54 (1 November 2007)
Additions/changes:
1) Fixed bug where the obfuscator is unable to make a stack map
table entry for an ambiguous array type.
Revision 3.53 (27 May 2007)
Additions/changes:
1) Fixed bug so that classes which implement an interface having
"java/io/Serializable" as a super-interface are now also treated as
serializable.
Revision 3.52 (6 May 2007)
Additions/changes:
1) Includes support for Java 6 class files.
Revision 3.51 (18 April 2007)
Additions/changes:
1) Supports package renaming.
Revision 3.5 (2 June 2006)
Additions/changes:
1) Supports unused class removal. This is specified through the
GUI, or using the new "* classes remove_unused" directive in the
directives file.
Revision 3.46 (15 Mar 2006)
Additions/changes:
1) Retains the original method names for compiler generated
methods in enum classes.
Revision 3.45 (4 Mar 2006)
Additions/changes:
1) Includes a fix to correctly rename method references
for arrays.
Revision 3.44 (1 Mar 2006)
Additions/changes:
1) Includes a fix for a null pointer exception when processing
"Enclosing Method Attributes" that do not specify a method.
Revision 3.43 (28 Dec 2005)
Additions/changes:
1) Includes a fix to correctly log unchanged symbolic names in the log
file, instead of logging 'null' as the new name.
2) Adds some exclusions to method and field renaming, for supporting
Serialization and RMI.
3) Unused constructors are removed if method removal is specified.
4) If a change record file is used, it will have priority over other
settings for name obfuscation.
5) Any method or field that is renamed based on a change record file
will not be removed.
6) Smokescreen has been built using JDK 1.3.
Revision 3.42 (12 Oct 2005)
Additions/changes:
1) Includes a fix for an array index out of bounds exception in the
obfuscated application when it only contains null strings, and uses
string encryption.
Revision 3.41 (8 Jan 2005)
Additions/changes:
1) Includes a fix for Smokescreen ignoring exclusion directives in rev
3.4.
Revision 3.4 (18 Oct 2004)
Additions/changes:
1) Support for JDK 5.0.
2) String encryption.
Revision 3.33 (27 Dec 2003)
Additions/changes:
1) Minor improvements to speed up obfuscation.
Revision 3.32 (4 Dec 2003)
Additions/changes:
1) A bug fix for an error that is reported when obfuscating a class
that does not have a superclass.
Revision 3.31 (13 Sep 2003)
Additions/changes:
1) A bug fix for an error that is reported when a referenced method is
not declared in an interface but is declared in its super-interface.
2) Minor improvements to bytecode obfuscation.
Revision 3.3 (22 March 2003)
Additions/changes:
1) Improvements in the removal of unused methods and fields.
2) When launched without the GUI Smokescreen will now provide a
return-code on exit, to indicate if an error had occurred. This
return-code can be used in build tools such as ANT to determine if an
error occured during obfuscation.
3) The 'use_change_record' directive has been added, which allows the
use of a previous log file as an input record record file, to perform
renamings that are consistent with a previous obfuscation. This feature
is useful for performing incremental obfuscation.
Revision 3.2 (12 February 2003)
Additions/changes:
1) Fixes a bug where a method in a superclass is renamed even though it
has the same name as a method in an external interface.
2) Removes unused constants from the constant pool.
3) Renaming is done more efficiently.
4) Allows use of the "*" character as a wildcard character when
specifying exclusions for class, method, and field renaming in the
directives file.
5) Introduces a new directive "all_names_in_class" to exclude the class
name, all method names and all field names for a particular class when
renaming.
6) Introduces a new directive "use_class_loader_for_superclasses" to
indicate that superclasses may be found in the search path used to load
classes.
Revision 3.11 (4 November 2002)
Additions/changes:
1) Fixes a bug where a null pointer exception is reported when the
manifest of the source jar file does not contain a "Main-Class"
attribute.
2) Fixes a bug where an external interface method reference may be
renamed when it shouldn't.
3) Includes improvements to bytecode obfuscation.
Revision 3.1 (1 September 2002)
Additions/changes:
1) Smokescreen will now accept super classes that are located inside
zip files.
2) Smokescreen can now obfuscate classes in zip or jar files.
3) The dot ('.') and forward slash ('/') can both be used as a package
separator in the directives file.
4) Minor changes have been made to work properly with Microsoft's
compiler and JVM.
Revision 3.0 (December 2001)
Additions/changes:
1) Smokescreen can now be run from the command line without the GUI.
Obfuscation options are specified using a directives file.
2) Smokescreen now does not ask for confirmation before creating a
destination directory, if one does not already exist.
3) When using a directives file with the GUI, the directives file must
contain all the information (such as directory locations) normally
specified via the GUI.
4) This revision includes a fix for a bug where an interface method is
not renamed consistently with its super method in the super interface.
5) The format of the log file has been revised to provide more
information.
Revision 2.3 (September 2001)
Smokescreen 2.3 includes improvements for "Bytecode" obfuscation. Ver
2.3 also fixes a problem in rev 2.2, where obfuscated applets might not
run properly on some browsers.
Revision 2.2 (July 2001)
Smokescreen 2.2 includes minor improvements for Bytecode obfuscation.
Registration codes for earlier revisions can be used to install a
registered copy of Smokescreen 2.2.
Revision 2.1 (April 2001)
Smokescreen 2.1 includes a fix for a "Bad file descriptor" error
message that may show up on some installations. Registration codes for
revision 2.0 can be used to install a registered copy of Smokescreen
2.1.
Revision 2.0 (February 2001)
Smokescreen 2.0 works with packages, by obfuscating class files in the
subdirectories of the source directory. The package names and directory
structure are duplicated in the destination directory. This allows for
the obfuscation of packages contained in the source directory. This
revision of the software can also work with a 'directives' file for
specifying obfuscation parameters. The directives file is be used to
specify the obfuscation settings that would normally be specified using
the menu bar. Class, method or field names that should be excluded from
obfuscation can also be specified in the directives file. Note that
registration codes for earlier revisions of Smokescreen will not work
with version 2.0.
Revision 1.1 (December 2000)
Smokescreen 1.1 has a fix to eliminate a problem with the application
not launching properly in some non Win98 operating systems. Valid
registration codes for Smokescreen 1.0 may be used to install
Smokescreen 1.1 at no extra charge.
Revision 1.0 (July 2000)
First release of Smokescreen.
|
|
|
|
|
|
|