编程工具

ProGuard(JAVA代码混淆工具) V5.3.3 最新免费版
  • ProGuard(JAVA代码混淆工具) V5.3.3 最新免费版

  • 类别:编程工具系统: WinAll
  • 大小:2.92M时间:2017-09-21 14:03:29

应用简介

  ProGuard是一款非常实用的JAVA代码混淆工具,由于Android开发的应用程序主要是使用JAVA代码编写,但是JAVA代码很容易被反编译,为了很好的保护JAVA源代码,我们需要对编译好后的class文件进行混淆,这款软件就应运而生,集压缩器、优化器、混淆器、预校验器于一身。

  ProGuard是一个命令行工具,并提供了图形化用户界面,它也可以结合Ant或J2ME Wireless Toolkit使用。通过ProGuard得到的更精简的jar文件意味着只需要更小的存储空间混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向破解。

ProGuard

【功能介绍】

  压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。

  优化(Optimize):对字节码进行优化,移除无用的指令。

  混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名。

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

【工作原理】

  ProGuar由shrink、optimize、obfuscate和preveirfy四个步骤组成,每个步骤都是可选的,我们可以通过配置脚本来决定执行其中的哪几个步骤。

  混淆就是移除没有用到的代码,然后对代码里面的类、变量、方法重命名为人可读性很差的简短名字。

  那么有一个问题,ProGuard怎么知道这个代码没有被用到呢?

  这里引入一个Entry Point(入口点)概念,Entry Point是在ProGuard过程中不会被处理的类或方法。在压缩的步骤中,ProGuard会从上述的Entry Point开始递归遍历,搜索哪些类和类的成员在使用,对于没有被使用的类和类的成员,就会在压缩段丢弃,在接下来的优化过程中,那些非Entry Point的类、方法都会被设置为private、static或final,不使用的参数会被移除,此外,有些方法会被标记为内联的,在混淆的步骤中,ProGuard会对非Entry Point的类和方法进行重命名。

  那么这个入口点怎么来呢?就是从ProGuard的配置文件来,只要这个配置了,那么就不会被移除。

ProGuard支持那些种类的优化:

  除了在压缩操作删除的无用类,字段和方法外,ProGuard也能在字节码级提供性能优化,内部方法有:

  常量表达式求值

  删除不必要的字段存取

  删除不必要的方法调用

  删除不必要的分支

  删除不必要的比较和instanceof验证

  删除未使用的代码

  删除只写字段

  删除未使用的方法参数

  像push/pop简化一样的各种各样的peephole优化

  在可能的情况下为类添加static和final修饰符

  在可能的情况下为方法添加private, static和final修饰符

  在可能的情况下使get/set方法成为内联的

  当接口只有一个实现类的时候,就取代它

  选择性的删除日志代码

  实际的优化效果是依赖于你的代码和执行代码的虚拟机的。简单的虚拟机比有复杂JIT编译器的高级虚拟机更有效。无论如何,你的字节码会变得更小。

  仍有一些明显需要优化的技术不被支持:

  使非final的常量字段成为内联

  像get/set方法一样使其他方法成为内联

  将常量表达式移到循环之外

  Optimizations that require escape analysis

展开 收起

猜你喜欢

热门专题

热门推荐

  • 冠唐云仓库管理 V8.2.2_240716 安卓版

    冠唐云仓库管理 V8.2.2_240716 安卓版

  • 一言 V5.0 安卓版

    一言 V5.0 安卓版

  • 钉钉手机版 V7.6.5 安卓最新版

    钉钉手机版 V7.6.5 安卓最新版

  • 阳光云 V2.1.6.20240716 安卓版

    阳光云 V2.1.6.20240716 安卓版

  • 北肿云病历软件 V4.10.13 安卓版

    北肿云病历软件 V4.10.13 安卓版

  • 腾讯会议手机版 V3.28.2.406 安卓最新版

    腾讯会议手机版 V3.28.2.406 安卓最新版

  • 弈客围棋手机版 V9.7.101 安卓官方版

    弈客围棋手机版 V9.7.101 安卓官方版

  • 1688商家版手机版app V3.24.2 安卓版

    1688商家版手机版app V3.24.2 安卓版

  • i云保 V8.10.0 安卓版

    i云保 V8.10.0 安卓版

  • GitHub客户端 V1.169.1 手机安卓版

    GitHub客户端 V1.169.1 手机安卓版

  • 车拖车司机 V2.3.7 安卓版

    车拖车司机 V2.3.7 安卓版

  • SView看图纸 V10.2.0 安卓版

    SView看图纸 V10.2.0 安卓版

推荐排名

  • Modbus slave汉化版 V7.4.4 免费中文版 5.84M5.5万人在用 Modbus slave是一款功能十分强大的电子通讯模拟仿真测试软件,这款软件拥有干净清爽的用户界面和丰富的功能板块,能够帮助程序开发人员更好地执行通讯模拟和测试工作。

    下载
  • 编程猫源码编辑器 V3.8.6 官方版 229.59M3.6万人在用 编程猫源码编辑器是一款面向8岁以上少年儿童开发的趣味编程软件。它可以用来创造故事、动画、游戏、音乐和艺术,通过图形化编程,引导学生了解、掌握编程语言中的循环、判断等多种基础结构,开发孩子对编程的学习兴趣和热情。

    下载
  • 威纶通触摸屏编程软件最新版本 V6.08.02.500 官方免费版 748.57M3.4万人在用 威纶通触摸屏编程软件是一款非常专业的电脑屏幕编辑软件。它的功能十分强大,除了常用的四则运算、逻辑判断等功能外,还可以进行三角函数、反三角函数、开平方、开三次方等运行,还可以编写通讯程序。

    下载
  • 西门子博途V18中文破解版 V2022 免激活授权版 6.22G2.4万人在用 西门子博途V18是一款非常专业的自动化编程软件。该版本是全新的V18年版本,完美集成于STEP 7,可以为全自动生产线对机器人进行编程,该版本内置V18授权工具,破解之后,即可免费使用。

    下载
  • 小熊猫devc++编译器 V6.7.5 官方中文版 37.05M2.5万人在用 小熊猫devc++是一款非常专业的C/C++ 编辑器。它基于Dev-C++打造,极大的改进了代码自动完成功能,编译速度快,适用于一些C/C++语言的初学者,能够让用户在短时间就能完成编程,时间缩短,提升效率。

    下载
  • 西门子博途V16编程软件 中文免费版 16.63G2.5万人在用 西门子博途V16编程软件是一款非常好用的自动化编程软件,此软件在控制参数、程序块、变量、消息等数据管理方面,所有数据只需输入一次,大大减少了自动化项目的软件工程组态时间,提高了工作效率,降低了工作成本。

    下载
  • step7microwinsmart编程软件 V2.6 官方中文版 2.88G1.7万人在用 step7microwin smart是一款由西门子公司针对S7-200 SMART所推出的编程软件。通过安装该软件,就能使操作人员可以轻松通过上位机读取S7-200 SMART的数据,支持win7/10等操作系统,免费下载。

    下载
  • 乐高Wedo2.0编程软件 V1.9.6 官方中文版 511.09M1.4万人在用 乐高Wedo2.0编程软件是一款由乐高出品的编程学习软件,它可以帮助用户在电脑上即可学习编程的相关知识,提供丰富的学习指导课程,能够帮助学生学习各个学科的知识内容,包括科学、编程和生命等内容。

    下载

网友评论