ProGuard是面向Java和Android开发用户推出的一款Java字节码工具,集代码压缩、优化、混淆和预校验等功能于一体,是Java/Android开发中常用的代码保护与优化工具。
ProGuard使用高级算法和技术,对Java源代码进行混淆,它会对类名、方法名、变量名等进行重命名,以增加代码的复杂性和混淆程度,使得代码阅读和理解变得困难。RoGuard还会对代码进行优化和压缩,以提高应用程序的性能和响应速度。它可以删除无用的代码和资源,优化方法和循环结构,以及压缩字节码文件,使应用程序更加高效和轻巧。
1、缩小步骤检测并移除未使用的类、字段、方法和属性。
2、优化步骤会优化字节码并移除未使用的指令。
3、名称混淆步骤用简短且无意义的名称重新命名剩余的类、字段和方法。
4、最后一步的预验证会为类别添加预验证信息,这对于 Java Micro Edition 以及 Java 6 及以上版本来说是必需的。
除了在缩小步骤中移除未使用的类、字段和方法外,ProGuard 还可以在字节码层面、方法内部和跨方法进行优化。得益于控制流分析、数据流分析、部分评估、静态单一赋值、全局值编号和活度分析等技术,ProGuard能够:
评估恒定表达式。
移除不必要的字段访问和方法调用。
去除不必要的枝条。
去除不必要的比较和测试实例。
移除未使用的代码块。
合并相同的代码块。
减少变量分配。
移除仅写字段和未使用的方法参数。
内联常数字段、方法参数和返回值。
内联方法要么简短,要么只调用一次。
简化尾部递归调用。
合并类和接口。
尽可能让方法保持私密、静态和最终。
尽量让课程保持静态和最终阶段。
替换只有单一实现的接口。
进行200多个窥孔优化,比如将“答案是”+42“替换为”答案是42“。
可以选择移除日志代码。
这些优化的积极效果取决于你的代码以及执行代码的虚拟机。简单的虚拟机可能比配备复杂JIT编译器的高级虚拟机更有利。至少,你的字节码可能会变得更小一些。
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元数据缩小的回归问题
展开内容
8.8/3.56M
DBF Viewer 2000电脑版是一款功能强大且易于操作的DBF文件查看与编辑工具,专为数据库工作人员设计,可帮助用户通过示例对数据库进行各类操作。它兼容Clipper、dBase、FoxBase、Foxpro等多种数据库格式,不仅支持查看、编辑、排序等基础功能,还能创
查看
9.0/185.12M
Apifox电脑版官方版是一个API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter。
10.0/5.91M
和平精英绿洲启元编辑器是由腾讯游戏光子工作室发布的开发者工具。绿洲启元是基于《和平精英》创作出的新玩法模式,创作者们可以通过绿洲启元来释放自己的无限创意,将《和平精英》从传统的FPS玩法模式中解放出来,衍生出更加多样化的精彩玩法。
查看
查看
8.8/149M
Electron是一款开源的跨平台桌面应用开发框架,最初由 GitHub 推出,现由 OpenJS Foundation 联合社区持续维护。它整合了Chromium浏览器内核和Node.js运行环境,让开发者能够直接使用HTML、CSS、JavaScript等前端技术开发W
9.0/25.55M
易语言助手是一款基于易语言支持库方式存在的辅助工具,通过自由选配丰富的插件,帮助开发者打造个性化的编程环境。它提供自动保存与备份、模块查看器、一键静态编译、智能变量声明、代码框扩展等功能,让易语言IDE的体验向主流开发工具靠拢!
查看
查看