ProGuard(Java字节码工具)

大小:31.43M 类别:
  • 编程其它

官方安全无插件纠错

  • 更新时间2026-07-28
  • 版本v7.9.1
  • 系统Pc
  • 语言英文

ProGuard是面向Java和Android开发用户推出的一款Java字节码工具,集代码压缩、优化、混淆和预校验等功能于一体,是Java/Android开发中常用的代码保护与优化工具。

ProGuard使用高级算法和技术,对Java源代码进行混淆,它会对类名、方法名、变量名等进行重命名,以增加代码的复杂性和混淆程度,使得代码阅读和理解变得困难。RoGuard还会对代码进行优化和压缩,以提高应用程序的性能和响应速度。它可以删除无用的代码和资源,优化方法和循环结构,以及压缩字节码文件,使应用程序更加高效和轻巧。

软件特色

1、缩小步骤检测并移除未使用的类、字段、方法和属性。

2、优化步骤会优化字节码并移除未使用的指令。

3、名称混淆步骤用简短且无意义的名称重新命名剩余的类、字段和方法。

4、最后一步的预验证会为类别添加预验证信息,这对于 Java Micro Edition 以及 Java 6 及以上版本来说是必需的。

ProGuard支持哪些优化

除了在缩小步骤中移除未使用的类、字段和方法外,ProGuard 还可以在字节码层面、方法内部和跨方法进行优化。得益于控制流分析、数据流分析、部分评估、静态单一赋值、全局值编号和活度分析等技术,ProGuard能够:

评估恒定表达式。

移除不必要的字段访问和方法调用。

去除不必要的枝条。

去除不必要的比较和测试实例。

移除未使用的代码块。

合并相同的代码块。

减少变量分配。

移除仅写字段和未使用的方法参数。

内联常数字段、方法参数和返回值。

内联方法要么简短,要么只调用一次。

简化尾部递归调用。

合并类和接口。

尽可能让方法保持私密、静态和最终。

尽量让课程保持静态和最终阶段。

替换只有单一实现的接口。

进行200多个窥孔优化,比如将“答案是”+42“替换为”答案是42“。

可以选择移除日志代码。

这些优化的积极效果取决于你的代码以及执行代码的虚拟机。简单的虚拟机可能比配备复杂JIT编译器的高级虚拟机更有利。至少,你的字节码可能会变得更小一些。

ProGuard常见问题

1、ProGuard自带图形界面吗?

是的。首先,ProGuard完全可以作为命令行工具使用,可以轻松集成到任何自动构建流程中。对于休闲用户,还有图形用户界面,简化了创建、加载、编辑、执行和保存ProGuard配置。

2、ProGuard能处理资源文件吗?

是的。ProGuard复制所有非类资源文件,并可根据已应用的混淆处理调整其名称和内容。

3、ProGuard会加密字符串常量吗?

不。程序代码中的字符串加密必须严格可逆,因此它只提升了混淆层面。这会增加代码的影响力。然而,根据广泛需求,ProGuard的闭源Android兄弟DexGuard确实提供了字符串加密,以及更多针对静态和动态分析的防护技术。

4、ProGuard会进行控制流混淆吗?

不。控制流混淆会在字节码中注入额外的分支,试图欺骗反编译器。ProGuard除了在优化技术上有一定程度外,并未做到这一点。ProGuard的闭源Android兄弟DexGuard确实提供了控制流混淆功能,作为加强Android应用的众多额外技术之一。

5、ProGuard支持增量混淆吗?

是的。此功能允许您在新的混淆步骤中指定之前的混淆映射文件,以便为混淆代码生成插件或补丁。

6、ProGuard能利用保留关键词进行混淆吗?

是的。你可以自定义混淆词典,比如保留关键词列表、带外来字符的标识符、随机源文件,或莎士比亚的文本。注意,这几乎没有改善混淆效果。好的反编译器可以自动替换保留的关键词,而且这种效果可以通过用更简单的名称再次混淆来轻松解除。

7、ProGuard能重建混淆的堆栈痕迹吗?

是的。ProGuard配备了一个配套工具ReTrace,可以“去混淆”由混淆应用产生的堆栈跟踪。重建基于ProGuard能够写出的映射文件。如果行号已被混淆处理,则会为每个混淆且反向映射模糊的方法名称列出备用方法名称。详情请参阅ProGuard用户手册。

8、DexGuard和ProGuard有什么不同?

DexGuard是ProGuard的商业扩展:

DexGuard专为Android应用和库设计:它不仅优化并混淆字节码,还包括清单文件、资源、资源文件、资产文件和原生库。

DexGuard专注于让应用能够自我防御,防止逆向工程和篡改。DexGuard在混淆、加密和检测上的技术远比ProGuard的基本名称混淆更强大。

DexGuard与ProGuard兼容:它读取相同的配置。它已经为安卓运行时和常见安卓库提供了调优配置。

更新日志

v7.9.1版本

漏洞修复

修复Kotlin元数据缩小的回归问题

展开内容

网友评论

0人参与,0条评论
  • 评论需审核后才能显示

同类排行