bb_mug Overview

bb_mug is a simple, tiny and fast Java class obfuscator.

This software is published under our NON COMMERCIAL LICENSE. If you plan to use any of this software in a commercial product, contact the author for conditions and permissions.

Read, understand and accept the disclaimer before download and using bb_mug.

  • It is simple since there are no options
  • It is tiny because it was coded smart
  • It is fast due to efficient algorithms

bb_mug History

dateinformation
2006-02-28The current version (V1.5) fixes issues with mangled referenced members.

What does it do?

  • Where applicable bb_mug replaces class, method and field names with shorter names.
  • It removes all informations which are not required for execution.
This means that you MUST apply tools like a verifier to the classes created by bb_mug.

How does it work?

bb_mug requires 2 arguments
  • the input path, to read the classes to obfuscate
  • the output path, to write the obfuscated classes to
There are no options since it follows the default visibility paradigm:
  • public elements are not obfuscated
  • protected elements are not obfuscated, if they might be visible to external derived classes
  • package local and private members are always obfuscated
If you believe that a public method should be obfuscated you should reconsider why it is public.

Usage from command line

My command line looks like
java -jar /tools/bb_mug.jar <inpath> <outpath>

Usage from ANT

My ANT targets look like
    <target name="mug" depends="init" >
        <mkdir dir="${class.final}"/>
        <java classname="de.bb.mug.Main" fork="yes">
          <arg value="${class.src}"/>
          <arg value="${class.final}"/>
          <classpath>
            <pathelement path="${java.class.path}"/>
            <pathelement location="tools/bb_mug.jar" />
          </classpath>
        </java>
    </target>

legal info

Disclaimer of Warranty

Software is provided "AS IS," without a warranty of any kind. You may use it on your own risk.

Limitation of Liability

I SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY YOU OR ANY THIRD PARTY AS A RESULT OF USING OR DISTRIBUTING SOFTWARE. IN NO EVENT WILL I BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF I HAVE ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Copyright

(c) 2002-2006 by BebboSoft, Stefan "Bebbo" Franke, all rights reserved

$Revision: 1.6 $