| |
retroguard是一个很不错的java混淆器,而且在jbuilder7的企业版中也带了这个混淆器。 retroguard本身是一个java程序(一个jar包),所以要使用的话必须先安装jdk。运行前需要设置一些环境变量,除了要在path中包含java的执行路径以外,还要在classpath中加入d:/retroguard/retroguard.jar(假设你的retroguard.jar在d:/retroguard下)。如果没有设置classpath的话也不要紧,只不过每次运行时就要通过 -classpath 加上路径参数。设置好运行环境以后还要准备好你要混淆的.jar文件包,至于如何把编译好的类打包成.jar文件就不在这里多说了。 retroguard的执行格式是: java retroguard [输入jar文件 [输出jar文件 [“保留脚本文件” [日志文件]] 其中“保留脚本文件”描述了那些类、函数、变量名必须保留,不能被混淆;日志文件是执行后生成的记录文件,记录的错误、混淆情况等信息。 对于“保留脚本文件”可以通过一个图形界面rggui来设置,执行命令是: java rggui 运行后,可以根据提示选择输入jar文件,选择要保留的类、函数、变量,完成后会自动生成“保留脚本文件”。其实通常情况下只要保留运行的起始类名称就可以了。 如果你的jar包用到了第三方的函数库,比如siemens的api,那么就要在 -classpath 参数中指定。例如: java -classpath c:/siemens/smtk/6688i1_b8/lib/api.jar retroguard in.jar out.jar script.txt log.txt 如果retroguard混淆失败,可以查看日志文件取得错误信息。 这里我发现一个问题,就是遇到有类似 ...$$1.class 这样的文件,retroguard会提示出错,后来我修改了他的源代码,直接跳过了对这种文件的处理。 jbuilder7中retroguard的设置和用法: jbuilder7的企业版中带了retroguard v1.1,再jbuilder7安装路径下的retroguard-v1.1目录中。在jbuilder7中可以直接调用retroguard。设置的方法如下: 点菜单tools -> configure obfuscators配置混淆器,点左下角的new...新建一个混淆器,选择retroguard的路径,完成配置。使用起来要通过archive builder,点菜单wizards -> archive builder...,archive type选择midlet(这里仅仅介绍针对j2me应用),然后根据提示一步一步往下设置,到达第9步也就是混淆器设置的时候,选中obfuscate the contents of the archive,obfuscator选择混淆器,use the classes specified blow下面添加要保留的类(默认保留起始执行类),结束设置。 这样当每次编译的时候,就会自动生成混淆过的jar文件包了
|
|