DashO Java Obfuscator Change Log V6.4 Build 1 – Release Date March 29, 2010

Change Log – Version 6.4.1 – Release Date March 29, 2010

New Features

  • RI off-line mode. If the instrumented application cannot connect to the RI server, or has been configured to only run as an off-line application, the RI messages will be stored locally for later transmission. When communications with the RI server is restored the stored messages are transfered automatically in the background. For applications that always run off-line a command line tool and Java class are provided to transmit the saved messages on demand.
  • Controlable removal of unused classes. You can now control what should be done with unused input classes. This follows the unused method removal syntax: unused; unused-non-public; none. Classes that are removed are listed in the DashO report.


  • Property editors have been added to interface items. To configure items in rule trees or lists right click on the item select Properties.
  • Debugging information can be selectively removed. The following types of debugging information can be selectively removed: SourceFile; SourceDir; SourceDebugExtension; LineNumberTable; LocalVariableTable; LocalVariableTypeTable.
  • Class file attributes can be selective removed by type. The following attributes can be removed: Exceptions; Signature; Deprecated; Synthetic; EnclosingMethod; RuntimeVisibleAnnotations; RuntimeInvisibleAnnotations; RuntimeVisibleParameterAnnotations; RuntimeInvisibleParameterAnnotations; AnnotationDefault; InnerClasses.
  • Type and modifiers as criteria. All include and exclude list can now specify the Java modifiers as part of the criteria. In addition, classes entries can specify the type of the class: interface; enum; annotation; class. These can be combined in the same manner as they used in source code, but can also include negation, such as !public.
  • Duplicate class warnings now indicate the locations of the classes in question. DashO will indicate which copy of the class is being used and which is being ignored.
  • Items from the class clist can be dragged-and-dropped into the rules list to create rules.
  • Tool tips added to class list and the results list. The tool tips show the declaration of the item as it would appear in source code.
  • Merged output can now specify the autocopy option. This automatically copies non-class files from the input to the output. Non-merged output mode always performs the automatic copying of non-class files.
  • You can now control the location where the string encryption decrypter method is placed. This uses a selection system identical to that used in the rule trees.
  • String decrypter method changed so that it blends in better with the applications methods.
  • Improved string encryption so that identical strings are not encrypted to the same value.
  • Improved the shutdown time of RI instrumented applications that have messages that have not yet been sent to the server.
  • The ExpiryCheck RI annotation now supports the where property.
  • The screen layout on the Mac has been improved. Also integration with OS-X specific features has been added.
  • The toolbar can now be hidden via the Preferences dialog.
  • The following RI annotations have been added to support new features: EndPoint;
  • The New Project Wizard now read Castor and ehcache XML files to determine entry points and these files are rewritten after obfuscation.
  • The New project Wizard’s identification of 3rd party jars has been improved.


  • Rename exclusion list shows constructors, which are never renamed.
  • Class list is blank when input classes are recompiled and class list refreshed./li>
  • No way to specify custom RI endpoint/SSL in user interface.
  • Method override introduced when subclassing classes with package-scoped methods.
  • Start-up failure when running from a read-only Samba share when dasho.dat is read-write.
  • Annotation properties editor text fields look like they are read-only.
  • Disabled text in proxy settings editor has wrong background color.
  • Static values() and valueOf() methods in enumerations not preserved.
  • Unparseable XML file in input jar causes failure.
  • Changes in control flow setting et. al. do not cause pop-up menu items to be enabled correctly.
  • Misleading message about merging runtime when no RI annotation specified.
  • readObjectNoData() method must be preserved in Serializable classes.
  • Wizard does not open created project file for WAR files.
  • When processing a WAR file output may not be corrected placed in WEB-INF directory.


  • Controls on the interface that were used to configure rules, such as being a regular expression, have been removed. These have been moved to property editors.
  • When non-merged output is selected the RI runtime jar is now merged into an existing jar or directory. Previously the jar was copied over to output directory.
  • The excludes panel has been moved from the input to the remove part of the tree. No functionality has changed and the project file remains unchanged.
  • The -j/--jar and -o/-p/--output command line options have been removed. No substitute is provided.
  • The global options NOINDUCTSTATICS, RENAMENATIVECLASSES, and PREOBFUSCATED, undocumented options have been removed. No substitutes are provided.
  • The global option LEAVEDEBUGGINGINFO has been replaced with and is migrated to element.
  • The New Project Wizard no longer generates entry points for values() and valueOf() methods in enumerations – the obfuscation engine now handles these correctly (See Fixes).