DashO Java Obfuscator Change Log V8.0 Build 0 – Release Date November 28, 2016

Change Log – Version 8.0.0 – Release Date November 28, 2016

Version 8.0.0

This release of PreEmptive Protection Ð DashO includes a wide range of enhancements, changes, and fixes. One major new feature is the ability to inject Debug Checks that can detect and respond to debugging at runtime. This release also includes a few backwards-incompatible changes, including that the minimum-required Java version is now 1.7. Please review the Changes section carefully, before upgrading.

  • Enhancements
    • Added the ability to inject Debug Checks (@DebuggingCheck, @DebuggingResponse, @DebugEnabledCheck, @DebugEnabledResponse), with new code annotations and a new user interface.
    • New Tamper and Shelf Life UI screens.
    • The User Guide is now in an easy-to-read HTML format.
    • Lucidator now provides a command-line mode and ships with DashO.
    • A new map file conversion tool: ConvertMap.jar.
    • Added an Android debug check sample.
    • Updated the injected code annotations and virtual annotations to include a customDataSource element which replaces @PropertySource.
    • Improved logging of injected code.
    • Improved the Android project wizard.
  • Changes
    • DashO now requires a 1.7 JVM or higher, to run.
    • Changed product name from DashO to PreEmptive Protection – DashO.
    • The DashO GUI now saves modified projects before building.
    • Ant-based configuration of .dox files is deprecated.
    • DashO builds now stop immediately if an error is encountered. Existing projects expecting output from DashO after errors will need to be updated to fix the errors.
    • The HALTONFIRSTERROR global option has been removed, as its behavior is now the default. The option will be silently ignored for existing projects.
    • The PRE_7_0_EXIT_BEHAVIOR global option has been removed. A warning will be emitted for existing projects using this option.
    • The .dox configuration format has changed. Opening an older project file in this new version of DashO will perform a one-way migration of the project file.
      • The <instrumentation> section has been moved under a new <injection> section.
      • @TamperCheck and @TamperResponse virtual annotations are now under new <tamperCheck> and <tamperResponse> sections.
      • @ExpiryCheck virtual annotation has been replaced with the new <shelfLifeCheck> section.
      • @ExpiryDate, @WarningDate, @StartDateSource, @ExpiryPeriod, @WarningPeriod, and @ExpiryTokenSource virtual annotations have been replaced with attributes on the new <shelfLifeCheck> element.
      • @SignerInfo virtual annotation was replaced with <signerInfo> inside the new <tamperCheck> section.
    • Lucidator output has been changed to better mimic actual stack traces, rather than the prior report-style output.
    • The Instrumentation UI has been updated.
    • Method-level virtual annotations can no longer be applied at the class level.
    • The @PropertySource annotation is deprecated and replaced with the per-annotation property customDataSource.
    • The @SignerInfo annotation is deprecated and replaced with properties inside @TamperCheck.
    • The @ExpiryCheck annotation has been renamed to @ShelfLifeCheck.
    • The @ExpiryDate, @WarningDate, @StartDateSource, @ExpiryPeriod, @WarningPeriod, and @ExpiryTokenSource annotations have been deprecated in favor of properties of the new @ShelfLifeCheck annotation.
    • The @ReportThrownExceptions and @ReportCaughtExceptions annotations will emit build warnings if the injection site has no throw statements or catch blocks, respectively.
    • The @TamperCheck and @TamperResponse code annotations’ response attribute is now an enumeration.
    • The @TamperResponse code annotation now requires the source attribute to be set.
    • Setting the probability to 0 in a Tamper Response now disables the response, instead of triggering it every time.
    • A Tamper Response with an incorrectly configured probability will generate a build error.
    • A Tamper Check with no valid action, response, or message will generate a build error.
    • Checks, responses, and code injection virtual annotations that are configured but unused during injection will produce a build error. Other unused annotations will produce a build warning.
    • The Android Ant project wizard was removed.
    • The Android project wizard now defaults Make Public to Automatic.
    • The reflection report no longer includes classes from the merged PreEmptive Analytics runtime.
    • The renaming map file will now contain all classes, methods, and fields processed by DashO and not just ones which were renamed.
    • An error will be output when a renaming input map contains a new name for a class, method, or field which is configured as non-renameable.
    • Updated to use ASM version 5.1.
    • Includes apktool-2.2.1.
  • Fixes
    • The incremental renaming report no longer includes the globally excluded classes.
    • Fixed the probability calculation for injected responses.
    • Tamper Response will now send a message (when configured) even when response is set to none.
    • Tamper Check no longer causes a validation issue on Android devices when using an old version of the Android build tools (e.g. v19.1 or v20.0) and a custom private getApplicationContext() method.
    • Fixed an exception when processing configuration files under certain circumstances.
    • Fixed an exception when processing the athrow bytecode under certain circumstances.
    • Direct APK processing no longer compresses assets, which prevented some apps from working properly.