Java使用proguard混淆代码配置文件详细说明教程

本文介绍 ProGuard 的工作原理,包括压缩、优化、混淆和预检四个阶段,详细解释了如何通过配置文件控制这些过程,以减小程序大小并提高安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考步骤 : https://blog.youkuaiyun.com/zhangdaiscott/article/details/45368261

ProGuard简介和工作流程
ProGuard能够通过压缩、优化、混淆、预检等操作,检测并删除未使用的类,字段,方法和属性,分析和优化字节码,使用简短无意义的名称来重命名类,字段和方法。从而使代码更小、更高效、更难进行逆向工程。

这里写图片描述
上图就是ProGuard的工作流程,分别会经过四个阶段:

压缩(Shrink):在压缩处理这一步中,用于检测和删除没有使用的类,字段,方法和属性
优化(Optimize):在优化处理这一步中,对字节码进行优化,并且移除无用指令
混淆(Obfuscate):在混淆处理这一步中,使用a,b,c等无意义的名称,对类,字段和方法进行重命名
预检(Preveirfy):在预检这一步中,主要是在Java平台上对处理后的代码进行预检
以上四个步骤都是可选的,我们可以通过配置脚本来决定其中的哪几个步骤。比如我们可以配置只压缩和混淆,不进行优化,不进行预检。 ProGuard的官网有使用指导:http://proguard.sourceforge.net/

这是Proguard最新版的下载链接: https://download.youkuaiyun.com/download/cjava_math/10473721

我主要说下,配置文件中一些配置细节 :

#不混淆lib下jar包里面的class文件

-keep class WebRoot.WEB-INFO.lib.*

#不混淆action包里面的类名,字段名,方法名

-keepnames class **.action.**{
    public private protected <fields>;
    public <methods>;
}
-keepnames class **.dao.**{
}
-keepnames class **.service.**{
}

-keep class * extends org.springframework.orm.hibernate3.support.HibernateDaoSupport {
    public <methods>;
}

#不混淆实体的字段和方法,jsp的表单里面会有这些属性的值,混淆之后,会出现无法提交表单情况

-keep class **.domain.** {
    public private protected <fields>;
    public <methods>;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微一笑满城空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值