PreEmptive Protection - DashO v8.2 User Guide

Quick Jar Screens

In this section, we explain how to use PreEmptive Protection - DashO's interface for Quick Jar projects. You can use the interface to create new Quick Jar projects or edit existing ones.

Note: Quick Jar mode is deprecated and will be removed in a future release of DashO.

Input Jars

The Input Jars panel is used to specify the jars that are to be processed. DashO examines these jars for manifests that contain Main-Class entries. These will be used as the entry points into the application. If there are no Main-Class entries, then the jars are processed as libraries. Any non-class files in the input jars are copied to the output jar.

Click the Add button to bring up a browse dialog that allows you to navigate your file system and select one or more a jars. You can also add jars by clicking New and typing the name of the jar in the Name: field.


Input Jar names support properties.

Input - Options

The Input - Options panel controls the actions that are applied to the input jars.

Ignore Missing Classes

DashO will attempt to analyze all classes that the application attempts to call. You can instruct DashO to ignore missing classes by selecting this option.


DashO cannot ignore classes and interfaces that the application extends or implements.

Ignore Missing Methods

DashO will attempt to locate concrete implementations of methods as part of its analysis. Turning this method on lets DashO proceeded even if it cannot locate the desired method. Use this option with caution.

Bypass DashO Processing

This option is not supported in Quick Jar projects.

Reflection Halts Build

DashO's analysis makes note of reflection usage in the application so that the targets of reflection can be addressed. Turn this option on when you are determining what parts of the application use reflection.

Determine Reflected Classes

DashO can determine simple targets of reflection and automatically add these classes to the list of included classes. Note that this behavior can increase build time.

Rename Reflected Classes

By default targets of reflection are not renamed. Use this option to allow these classes to be renamed.

Supporting Classpath

The supporting classpath has the list third party jars and class files used by your application that you do not want to obfuscate or include in the final jar. These are important to DashO since your classes can extend from the third party libraries and the renaming system needs to see those classes to determine the methods that are safe to rename.

To add a supporting jar, click the Add button and select the required jars. You can also add jars by clicking New and typing the name of the jar in the Name: field.


Supporting Classpath names support properties.

User Properties

The User Properties lets you create and assign values to properties that can be referenced in the project. This can allow you to create a project that acts as a template. See the <propertylist> section for information about using properties in your project.

Obfuscation – Options

Rename Classes and Members

Enables or disables the renaming of classes, methods, and fields in the project. If the inputs contain manifests that have Main-Class entries those classes and their main() method will not be renamed. If the jars are being processed as a library, only non-public items will be renamed.

Rename Annotations

Enables or disables renaming of internally defined annotations. If the jars are being processed as a library the annotations will not be renamed.

Control Flow

Enables or disables control flow obfuscation globally.

Encrypt Strings

Enables or disable string encryption obfuscation globally.

Optimize Byte Codes

Enables or disables byte code optimization globally.

Obfuscation – Renaming Exclude

The Obfuscation - Renaming Exclude panel lets you specify classes and/or their methods that are excluded from renaming.

Excluded Classes

Adding a class or package to the Excluded Classes list instructs DashO that the class should not be renamed. Methods in the class may be renamed. See <classes> Entry Point for details.

Excluded Classes + Methods

Adding a class or package to the Excluded Classes list instructs DashO that the class and its methods should not be renamed. See the <unconditional> section for details.


The PreMark panel is used to add a watermark to the obfuscated jar produced by DashO. Watermarks can only be applied to jars.

See the PreMark section of the Advanced Interface for details.

Output - Options

The Destination is where you specify an output jar file. DashO writes all the obfuscated classes to the output jar. If you know the name and path of the output jar file you want to use, you can enter it directly in the text box. Alternatively, you can browse your file system for the intended file location using the Browse button. There are several jar options:

  • Compress: Not only store data but also compress it.

  • Level: Level at which file compression should be performed. Valid values range from 0 (no compression/fastest) to 9. The default value is 6

  • Exclude Directory Entries: Store only file entries, not directory entries.


Only one output jar is generated regardless of the number of input jars specified.

Report file

This specifies the name and location for a report outlining the method/field removal and renaming performed by DashO. A summary is given detailing the total methods/fields/constant pool entries, as well as the final number and percentage of reduction after DashO execution. It also contains information about dynamically loaded classes, including reflection and forName calls.

Renaming Report File

This specifies the name and location for a report listing old and new names for renamed classes as well as their renamed members.

PreEmptive Protection - DashO Version 8.2.0. Copyright © 2017 PreEmptive Solutions, LLC