精品为您呈现,快乐和您分享!

移动端

收藏本站

17软件园

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

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

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

类型:编程开发 语言:英文

大小:2.8M 更新时间:2017-09-22

推荐指数:

应用简介


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 中的. 之前')