当前位置:首页 > 软件下载 > 编程开发

proguard(java代码混淆器)v5.3.3官方版

点此纠错

  • 平台:WinAll
  • 大小:2.8M
  • 语言:英文
  • 类别:编程开发
  • 授权:免费软件
  • 更新:2025-02-24
4.0
0% 0%

情介绍

proguard是一个java代码混淆工具并提供图形用户界面。它还可以与Ant 或J2ME Wireless Toolkit 结合使用。通过ProGuard获得的更精简的jar文件意味着只需要更少的存储空间。混淆链接将使用无意义的短变量来重命名类、变量和方法。这些步骤使代码更精简、更高效,并且更难进行逆向工程。

proguard是一个java代码混淆工具并提供图形用户界面。它还可以与Ant 或J2ME Wireless Toolkit 结合使用。通过ProGuard获得的更精简的jar文件意味着只需要更少的存储空间。混淆链接将使用无意义的短变量来重命名类、变量和方法。这些步骤使代码更精简、更高效,并且更难进行逆向工程。

proguard(java代码混淆器)

特征

收缩:检测并删除代码中无用的类、字段、方法和属性。

优化:优化字节码,删除无用指令。

混淆:使用简短且无意义的名称(例如a、b、c、d)重命名类、字段和方法。

预检查(Preveirfy):对Java平台上处理后的代码进行预检查,确保加载的类文件可执行。

指示

1.下载proguard

2.准备好你的jar包,我这里以test.jar为例。

3.解压proguard并执行bin目录下的proguardgui.bat。

proguard  下载

4、运行如图,点击左侧“输入/输出”菜单

proguard(java代码混淆器)

5.点击右侧“添加输入”添加我们要混合的jar包,test.jar

点击右侧的“添加输出”,填写我们要输出的jar包(随便命名)。这里我写的是test_out.jar。

注意输出的jar包,需要手动填写。

6. 添加支持库,即下面的“Library jars、wars、ears.”框。点击右侧的“添加”。

说明一下,最好把你的myeclipse中的java项目中的库的所有jar包都复制到一个目录下,然后在这里添加这些jar包。 myeclipse的环境一般都支持jar包。

proguard  下载

7. 完成上述步骤后,应该如下图4 所示,就差不多完成了。

proguard(java代码混淆器)

8、点击“收缩”,设置如图5。(可以根据需要设置,这里只是我的配置)

proguard  下载

9、点击“混淆”,进行设置,如图6。(可以根据需要设置,这里只是我的配置)

proguard(java代码混淆器)

10、点击“优化”,进行设置如图7。(可以根据需要设置,这里只是我的配置)

proguard  下载

11. 单击“处理”,然后单击“保存配置”。在弹出的对话框中输入要保存的配置文件的名称(我这里是test.pro),最后点击“保存”。如图8所示

proguard(java代码混淆器)

至少部分图形设置已经完成。

12. 最后,添加要保留的类和方法。

使用编辑器编辑刚刚保存的“test.pro”。您可以使用记事本做任何事情。打开后,应该如下所示。

-injars test.jar

-outjars test_out.jar

-libraryjars \'C:\\Program Files (x86)\\Java\\jdk1.6.0_10\\jre\\lib\\rt.jar\'

-libraryjars lib\\ant.jar

-libraryjars lib\\aopalliance-1.0.jar

-libraryjars lib\\commons-dbcp-1.4.jar

-libraryjars lib\\commons-fileupload-1.2.1.jar

-libraryjars lib\\commons-io-1.4.jar

.设置支持库包,省略

-不要跳过非公共图书馆班级成员

-不收缩

-使用唯一的类成员名称

-保留包名

-keepattributes 异常、内部类、签名、已弃用、源文件、行号表、本地变量*表、*注释*、合成、封闭方法

-保留参数名称

-忽略警告

.我们在这里添加需要维护的类和方法,写法如下

-保持类org.bl.soa.components.constant.* {

公共领域;

公共方法;

*** 放*(***);

*** 得到*();

}

-保留类org.bl.hibernate.* {

公共领域;

公共方法;

*** 放*(***);

*** 得到*();

}

.继续添加其他你想保留的类和方法,能写多少就写多少。我在test.jar 中添加了所有类。

.后面还有一些自动生成的配置,不用管。

13.写入后,保存。

重新打开progrard,执行bin目录下的proguardgui.bat。

点击第一个选项“Proguard”,然后点击“加载配置”,选择我们刚刚保存的“test.pro”进行加载。

proguard  下载

14.开始混合代码,点击右侧的“process”,然后点击“process!”,如下图

proguard(java代码混淆器)

15、等待处理完成后,输出“test_out.jar”即为混合jar包。可以使用xjad反向编辑看看效果。

16.如果处理过程中出现问题,通常会有提示。大多数通常与缺少相关类有关。如果缺少相关类,只需添加步骤7中图中缺少的支持包即可。

防范措施

1、注意版本。如果项目不需要,最好使用最新的稳定版本。这将减少出错的机会,并且学习曲线将显着缩短。

2. 最好使用与源代码相同编译版本的jvm来启动proguardgui.jar。不要直接用默认的jvm打开。

3、注意proguaardgui启动后默认加载的libraryjar中包含的rt.jar。它的版本和你使用的jvm版本一致。

4、使用1.4 jvm开启proguard时,注意不要勾选optimization选项卡中的keep enumerations选项,因为勾选该选项会导致配置文件中出现java.lang.Enum这个类。

仅在1.5环境中可用。错误信息如下:

[proguard] 注意:配置引用了未知类“java.lang.Enum”

[proguard] 注意:有1 个对未知类的引用。

[proguard] 你应该检查你的配置是否有拼写错误。

5.嵌入ant脚本时,通常会有这样一段

目标名称=\'proguard\' 取决于=\'init\'

taskdef Resource=\'proguard/ant/task.properties\' classpath=\'${lib.dir}/proguard/proguard.jar\' /

proguard配置=\'${src.dir}/config.pro\'/

/目标

task.properties 位于proguard.jar 中并被保留。 config.pro 是proguard 配置文件。最好使用proguardgui.jar来创建,然后根据自己的需要手动修改。

常见问题

1. 转换为dalvik 格式失败,错误1

网上主要有以下几种解决方案:

1、编辑eclipse项目下的.classpath文件,修改为

classpathentry kind=\'con\' path=\'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK\'/

2、下载最新版本的proguard,替换android sdk下的tools\\proguard(我就是用这个方法解决的,我的android sdk是r20,自带的proguard是4.7,我更新到4.8。)

3. 替换调用%java_exe% -jar \'%PROGUARD_HOME%\'\\lib\\proguard.jar %times;在tools\\proguard\\bin\\proguard.bat 文件中包含:

call %java_exe% -jar \'%PROGUARD_HOME%\'\\lib\\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 (我也尝试过这个方法,但它导致了另一个错误\'Expecting类路径分隔符\';\' 在参数号7 中的. 之前\')