编程工具

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

展开 收起

猜你喜欢

热门专题

热门推荐

  • Google表格 V1.24.442.01.90 安卓版

    Google表格 V1.24.442.01.90 安卓版

  • 苏易登 V1.10.2 安卓版

    苏易登 V1.10.2 安卓版

  • 扫描全能王APP V6.76.0.2411110000 官方安卓版

    扫描全能王APP V6.76.0.2411110000 官方安卓版

  • SView看图纸 V10.3.1 安卓版

    SView看图纸 V10.3.1 安卓版

  • 国象联盟 V1.9.5 安卓最新版

    国象联盟 V1.9.5 安卓最新版

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

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

  • 华为WeLink V7.41.13 官方安卓版

    华为WeLink V7.41.13 官方安卓版

  • 运满满司机 V8.80.4.0 安卓最新版

    运满满司机 V8.80.4.0 安卓最新版

  • 拼多多商家版 V6.5.5 安卓版

    拼多多商家版 V6.5.5 安卓版

  • Eteams(移动云办公) V4.0.222 安卓版

    Eteams(移动云办公) V4.0.222 安卓版

  • 口袋助理手机版 V8.0.1 安卓最新版

    口袋助理手机版 V8.0.1 安卓最新版

  • 掌上好房通 V12.1.9 安卓最新版

    掌上好房通 V12.1.9 安卓最新版

推荐排名

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

    详情
  • Paracraft帕拉卡3d动画编程创作工具 V1.4.10 官方电脑版 81.71M7.5万人在用 帕拉卡(Paracraft)是一款非常专业的3d动画编程创作工具。集成图形化编程、代码编程、机器人设计制作等功能,覆盖7-18岁青少年全年龄段人工智能编程教育学习,3D动画编程,让编程学习更有趣。

    详情
  • 西门子s7-200 smart编程软件 V2.3.0.2 中文免费版 287.75M6.2万人在用 s7200smart编程软件最新版本是一款界面美观的plc编程软件。该软件操作简单,对新款的编程软件进行支持,包括了CP243-1等,软件还可进行远程的编程、数据传输的功能也是相当的强大。

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

    详情
  • 华为eNSP网络设备模拟软件 V1.3.00.200T 官方最新版 667.13M6.1万人在用 华为网络设备模拟器是由华为官方推出的一款图形化网络仿真工具,该款工具完全免费,为广大用户完美呈现了真实的设备实景,包括华为最新的ARG3路由器和X7系列的交换机,支持大型网络模拟。

    详情
  • 西门子博途V17(含授权密钥) 中文破解版 11.32G4.4万人在用 西门子博途V17,又称为TIA Portal V17,是一款由西门子打造的全集成自动化编程软件,增强了对SIMATIC S7-1200、S7-1500、S7-300/400 和WinAC控制器的支持,该版本经过密钥授权,可永久免费进行使用。

    详情
  • 天问block图形化编程软件 V2024 官方正式版 708.33M3.2万人在用 天问block图形化编程软件是一款非常专业的51单片机开发利器。它提供项目创建和云保存、代码编辑、调试配置、程序下载和调试等功能,能够减少重复工作,提高开发效率。

    详情
  • IDA Pro 7.0破解版 免费汉化版 271.24M2.7万人在用 IDA Pro 7.0中文版是一款世界顶级的交互式反汇编工具,软件主要用在反汇编和动态调试等方面,支持对多种处理器的不同类型的可执行模块进行反汇编处理,可以为用户减少反汇编工作的难度,提高效率。

    详情

网友评论