JAV A 代码混淆 1. ProGuard 简介: 是一款免费的Java 类文件压缩器、优化器和混淆器。它能发现并删除无用类、字段(field)、方法和属性值(attribute)。它也能优化字节码并删除无用的指令。最后,它使用简单无意义的名字来重命名类名、字段名和方法名。经过以上操作的jar 文件会变得更小,并很难进行逆向工程。它支持脚本控制,可以使用 GUI 界面,与 eclipse 集成,支持 J2ME。 价格: 免费 使用方式: 1、 使用图形界面,如下图: 2、 使用脚本语句,将执行脚本语句加入相应脚本中执行,例如加入 ant、maven 项目自动构建中,在项目部署前混淆代码。 应用情况: 1、 需要对配置项了解具体含义; 2、 不需要混淆的属性、方法、类,需要在.pro 配置文件中说明; 3、 混淆方式为项目打包后再混淆; 4、 不能与 myeclipse、eclipse 集成使用; 5、 可以在 ant、maven 中的配置文件中添加脚本语句使用(编写相应的.Pro 文件,增加ProGuard 的执行 jar 文件); 6、 混淆时将无用的语句去除,优化方法间结构; 7、 混淆内容:属性、方法名称、类名称,对方法过程不做混淆处理,混淆力度不大。 2. Jocky 简介: 在 Sun JDK中提供的 Java编译器(javac)的基础上完成的,修改了其中的代码生成过程,对编译器生成的中间代码进行混淆,最后再生成 class文件,这样编译和混淆只需要一个步骤就可以完成。 价格: 免费 使用方式: 1、 在 myeclipse 与 eclipse 中使用安装插件方式,使用 Jocky 混淆。如图: 使用后会生成配置文件,用于混淆设置使用,该配置文件类似ant配置文件,如下图: 混淆等级有5 种(public、private、package、protected、all)。 2、 使用命令行或者脚本,将命令行加入脚本中执行,如在 ant 配置文件中加入执行脚本后可以执行混淆程序。执行脚本如下图: 目前在 maven 中暂不能使用Jocky 混淆。 应用情况: 1、 使用方便简洁,可以与 myeclipse、eclipse 集合使用; 2、 对不需要混淆的属性、方法、类可以在编码过程增加注解,如图: 在类里增加如图注解,若混淆级别为 public以上,则该类的所有 public的方法将不会被混淆; 3、 混淆方式为编译混淆,即在对项目编译的时候就进行了混淆; 4、 对 jdk 版本有要求,目前支持 1.4、1.5 版本的 JDK,但是有破解版本支持 1.5 以上的 JDK; 5、 可以与 ant 构建工具集成使用,加...